X-Git-Url: http://git.kpe.io/?p=clsql.git;a=blobdiff_plain;f=db-odbc%2Fodbc-ff-interface.lisp;h=96c9c5187c411a11c63663b3734c567bf3c51521;hp=48bbe1c8796dbac0c646b3d91796afd1722b73f6;hb=5148be446aee32ec705beac3fbba35f499df4fd4;hpb=44152655aacc033b0a544aca9f91700177d22a03 diff --git a/db-odbc/odbc-ff-interface.lisp b/db-odbc/odbc-ff-interface.lisp index 48bbe1c..96c9c51 100644 --- a/db-odbc/odbc-ff-interface.lisp +++ b/db-odbc/odbc-ff-interface.lisp @@ -6,7 +6,7 @@ ;;;; Purpose: Function definitions for UFFI interface to ODBC ;;;; Author: Kevin M. Rosenberg ;;;; -;;;; $Id: odbc-package.lisp 7061 2003-09-07 06:34:45Z kevin $ +;;;; $Id$ ;;;; ;;;; This file, part of CLSQL, is Copyright (c) 2004 by Kevin M. Rosenberg ;;;; and Copyright (C) Paul Meurer 1999 - 2001. All rights reserved. @@ -18,36 +18,35 @@ (in-package #:odbc) -(def-foreign-type sql-handle (* :void)) -(def-foreign-type sql-handle-ptr (* sql-handle)) -(def-foreign-type string-ptr (* :void)) - -(def-type long-ptr-type '(* :long)) +(def-foreign-type sql-handle :pointer-void) +(def-foreign-type sql-handle-ptr '(* sql-handle)) +(def-foreign-type string-ptr '(* :unsigned-char)) +(def-type long-ptr-type '(* #.$ODBC-LONG-TYPE)) (def-function "SQLAllocEnv" ((*phenv sql-handle-ptr) ; HENV FAR *phenv ) - :module :odbc + :module "odbc" :returning :short) ; RETCODE_SQL_API (def-function "SQLAllocConnect" ((henv sql-handle) ; HENV henv (*phdbc sql-handle-ptr) ; HDBC FAR *phdbc ) - :module :odbc + :module "odbc" :returning :short) ; RETCODE_SQL_API (def-function "SQLConnect" ((hdbc sql-handle) ; HDBC hdbc - (*szDSN string-ptr) ; UCHAR FAR *szDSN + (*szDSN :cstring) ; UCHAR FAR *szDSN (cbDSN :short) ; SWORD cbDSN - (*szUID string-ptr) ; UCHAR FAR *szUID + (*szUID :cstring) ; UCHAR FAR *szUID (cbUID :short) ; SWORD cbUID - (*szAuthStr string-ptr) ; UCHAR FAR *szAuthStr + (*szAuthStr :cstring) ; UCHAR FAR *szAuthStr (cbAuthStr :short) ; SWORD cbAuthStr ) - :module :odbc + :module "odbc" :returning :short) ; RETCODE_SQL_API (def-function "SQLDriverConnect" @@ -60,19 +59,19 @@ (*pcbConnStrOut :pointer-void) ; SWORD FAR *pcbConnStrOut (fDriverCompletion :short) ; UWORD fDriverCompletion ) - :module :odbc + :module "odbc" :returning :short) ; RETCODE_SQL_API (def-function "SQLDisconnect" ((hdbc sql-handle)) ; HDBC hdbc - :module :odbc + :module "odbc" :returning :short) ; RETCODE_SQL_API (def-function "SQLAllocStmt" ((hdbc sql-handle) ; HDBC hdbc (*phstmt sql-handle-ptr) ; HSTMT FAR *phstmt ) - :module :odbc + :module "odbc" :returning :short) ; RETCODE_SQL_API (def-function "SQLGetInfo" @@ -82,41 +81,41 @@ (cbInfoValueMax :short) ; SWORD cbInfoValueMax (*pcbInfoValue :pointer-void) ; SWORD FAR *pcbInfoValue ) - :module :odbc + :module "odbc" :returning :short) ; RETCODE_SQL_API (def-function "SQLPrepare" ((hstmt sql-handle) ; HSTMT hstmt - (*szSqlStr string-ptr) ; UCHAR FAR *szSqlStr - (cbSqlStr :long) ; SDWORD cbSqlStr + (*szSqlStr :cstring) ; UCHAR FAR *szSqlStr + (cbSqlStr :int) ; SDWORD cbSqlStr ) - :module :odbc + :module "odbc" :returning :short) ; RETCODE_SQL_API (def-function "SQLExecute" ((hstmt sql-handle) ; HSTMT hstmt ) - :module :odbc + :module "odbc" :returning :short) ; RETCODE_SQL_API (def-function "SQLExecDirect" ((hstmt sql-handle) ; HSTMT hstmt - (*szSqlStr string-ptr) ; UCHAR FAR *szSqlStr - (cbSqlStr :long) ; SDWORD cbSqlStr + (*szSqlStr :cstring) ; UCHAR FAR *szSqlStr + (cbSqlStr :int) ; SDWORD cbSqlStr ) - :module :odbc + :module "odbc" :returning :short) ; RETCODE_SQL_API (def-function "SQLFreeStmt" ((hstmt sql-handle) ; HSTMT hstmt (fOption :short)) ; UWORD fOption - :module :odbc + :module "odbc" :returning :short) ; RETCODE_SQL_API (def-function "SQLCancel" ((hstmt sql-handle) ; HSTMT hstmt ) - :module :odbc + :module "odbc" :returning :short) ; RETCODE_SQL_API (def-function "SQLError" @@ -124,26 +123,26 @@ (hdbc sql-handle) ; HDBC hdbc (hstmt sql-handle) ; HSTMT hstmt (*szSqlState string-ptr) ; UCHAR FAR *szSqlState - (*pfNativeError :pointer-void) ; SDWORD FAR *pfNativeError + (*pfNativeError (* :int)) ; SDWORD FAR *pfNativeError (*szErrorMsg string-ptr) ; UCHAR FAR *szErrorMsg (cbErrorMsgMax :short) ; SWORD cbErrorMsgMax - (*pcbErrorMsg :pointer-void) ; SWORD FAR *pcbErrorMsg + (*pcbErrorMsg (* :short)) ; SWORD FAR *pcbErrorMsg ) - :module :odbc + :module "odbc" :returning :short) ; RETCODE_SQL_API (def-function "SQLNumResultCols" ((hstmt sql-handle) ; HSTMT hstmt - (*pccol :pointer-void) ; SWORD FAR *pccol + (*pccol (* :short)) ; SWORD FAR *pccol ) - :module :odbc + :module "odbc" :returning :short) ; RETCODE_SQL_API (def-function "SQLRowCount" ((hstmt sql-handle) ; HSTMT hstmt - (*pcrow :pointer-void) ; SDWORD FAR *pcrow + (*pcrow (* :int)) ; SDWORD FAR *pcrow ) - :module :odbc + :module "odbc" :returning :short) ; RETCODE_SQL_API (def-function "SQLDescribeCol" @@ -151,39 +150,39 @@ (icol :short) ; UWORD icol (*szColName string-ptr) ; UCHAR FAR *szColName (cbColNameMax :short) ; SWORD cbColNameMax - (*pcbColName :pointer-void) ; SWORD FAR *pcbColName - (*pfSqlType :pointer-void) ; SWORD FAR *pfSqlType - (*pcbColDef :pointer-void) ; UDWORD FAR *pcbColDef - (*pibScale :pointer-void) ; SWORD FAR *pibScale - (*pfNullable :pointer-void) ; SWORD FAR *pfNullable + (*pcbColName (* :short)) ; SWORD FAR *pcbColName + (*pfSqlType (* :short)) ; SWORD FAR *pfSqlType + (*pcbColDef (* #.$ODBC-ULONG-TYPE)) ; UDWORD FAR *pcbColDef + (*pibScale (* :short)) ; SWORD FAR *pibScale + (*pfNullable (* :short)) ; SWORD FAR *pfNullable ) - :module :odbc + :module "odbc" :returning :short) ; RETCODE_SQL_API (def-function "SQLColAttributes" ((hstmt sql-handle) ; HSTMT hstmt (icol :short) ; UWORD icol (fDescType :short) ; UWORD fDescType - (rgbDesc :pointer-void) ; PTR rgbDesc + (rgbDesc string-ptr) ; PTR rgbDesc (cbDescMax :short) ; SWORD cbDescMax - (*pcbDesc :pointer-void) ; SWORD FAR *pcbDesc - (*pfDesc :pointer-void) ; SDWORD FAR *pfDesc + (*pcbDesc (* :short)) ; SWORD FAR *pcbDesc + (*pfDesc (* :int)) ; SDWORD FAR *pfDesc ) - :module :odbc + :module "odbc" :returning :short) ; RETCODE_SQL_API (def-function "SQLColumns" ((hstmt sql-handle) ; HSTMT hstmt - (*szTableQualifier string-ptr) ; UCHAR FAR *szTableQualifier + (*szTableQualifier :cstring) ; UCHAR FAR *szTableQualifier (cbTableQualifier :short) ; SWORD cbTableQualifier - (*szTableOwner string-ptr) ; UCHAR FAR *szTableOwner + (*szTableOwner :cstring) ; UCHAR FAR *szTableOwner (cbTableOwner :short) ; SWORD cbTableOwner - (*szTableName string-ptr) ; UCHAR FAR *szTableName + (*szTableName :cstring) ; UCHAR FAR *szTableName (cbTableName :short) ; SWORD cbTableName - (*szColumnName string-ptr) ; UCHAR FAR *szColumnName + (*szColumnName :cstring) ; UCHAR FAR *szColumnName (cbColumnName :short) ; SWORD cbColumnName ) - :module :odbc + :module "odbc" :returning :short) ; RETCODE_SQL_API (def-function "SQLBindCol" @@ -191,16 +190,16 @@ (icol :short) ; UWORD icol (fCType :short) ; SWORD fCType (rgbValue :pointer-void) ; PTR rgbValue - (cbValueMax :long) ; SDWORD cbValueMax - (*pcbValue :pointer-void) ; SDWORD FAR *pcbValue + (cbValueMax :int) ; SDWORD cbValueMax + (*pcbValue (* :int)) ; SDWORD FAR *pcbValue ) - :module :odbc + :module "odbc" :returning :short) ; RETCODE_SQL_API (def-function "SQLFetch" ((hstmt sql-handle) ; HSTMT hstmt ) - :module :odbc + :module "odbc" :returning :short) ; RETCODE_SQL_API (def-function "SQLTransact" @@ -208,19 +207,19 @@ (hdbc sql-handle) ; HDBC hdbc (fType :short) ; UWORD fType ($SQL_COMMIT or $SQL_ROLLBACK) ) - :module :odbc + :module "odbc" :returning :short) ; RETCODE_SQL_API ;; ODBC 2.0 (def-function "SQLDescribeParam" ((hstmt sql-handle) ; HSTMT hstmt (ipar :short) ; UWORD ipar - (*pfSqlType :pointer-void) ; SWORD FAR *pfSqlType - (*pcbColDef :pointer-void) ; UDWORD FAR *pcbColDef - (*pibScale :pointer-void) ; SWORD FAR *pibScale - (*pfNullable :pointer-void) ; SWORD FAR *pfNullable + (*pfSqlType (* :short)) ; SWORD FAR *pfSqlType + (*pcbColDef (* :unsigned-int)) ; UDWORD FAR *pcbColDef + (*pibScale (* :short)) ; SWORD FAR *pibScale + (*pfNullable (* :short)) ; SWORD FAR *pfNullable ) - :module :odbc + :module "odbc" :returning :short) ; RETCODE_SQL_API ;; ODBC 2.0 @@ -230,13 +229,13 @@ (fParamType :short) ; SWORD fParamType (fCType :short) ; SWORD fCType (fSqlType :short) ; SWORD fSqlType - (cbColDef :long) ; UDWORD cbColDef + (cbColDef :int) ; UDWORD cbColDef (ibScale :short) ; SWORD ibScale (rgbValue :pointer-void) ; PTR rgbValue - (cbValueMax :long) ; SDWORD cbValueMax + (cbValueMax :int) ; SDWORD cbValueMax (*pcbValue :pointer-void) ; SDWORD FAR *pcbValue ) - :module :odbc + :module "odbc" :returning :short) ; RETCODE_SQL_API ;; level 1 @@ -245,25 +244,25 @@ (icol :short) ; UWORD icol (fCType :short) ; SWORD fCType (rgbValue :pointer-void) ; PTR rgbValue - (cbValueMax :long) ; SDWORD cbValueMax + (cbValueMax :int) ; SDWORD cbValueMax (*pcbValue :pointer-void) ; SDWORD FAR *pcbValue ) - :module :odbc + :module "odbc" :returning :short) ; RETCODE_SQL_API (def-function "SQLParamData" ((hstmt sql-handle) ; HSTMT hstmt (*prgbValue :pointer-void) ; PTR FAR *prgbValue ) - :module :odbc + :module "odbc" :returning :short) ; RETCODE_SQL_API (def-function "SQLPutData" ((hstmt sql-handle) ; HSTMT hstmt (rgbValue :pointer-void) ; PTR rgbValue - (cbValue :long) ; SDWORD cbValue + (cbValue :int) ; SDWORD cbValue ) - :module :odbc + :module "odbc" :returning :short) ; RETCODE_SQL_API (def-function "SQLGetConnectOption" @@ -271,15 +270,15 @@ (fOption :short) ; UWORD fOption (pvParam :pointer-void) ; PTR pvParam ) - :module :odbc + :module "odbc" :returning :short) ; RETCODE_SQL_API (def-function "SQLSetConnectOption" ((hdbc sql-handle) ; HDBC hdbc (fOption :short) ; UWORD fOption - (vParam :long) ; UDWORD vParam + (vParam :int) ; UDWORD vParam ) - :module :odbc + :module "odbc" :returning :short) ; RETCODE_SQL_API (def-function "SQLSetPos" @@ -288,18 +287,18 @@ (fOption :short) ; UWORD fOption (fLock :short) ; UWORD fLock ) - :module :odbc + :module "odbc" :returning :short) ; RETCODE_SQL_API ; level 2 (def-function "SQLExtendedFetch" ((hstmt sql-handle) ; HSTMT hstmt (fFetchType :short) ; UWORD fFetchType - (irow :long) ; SDWORD irow + (irow :int) ; SDWORD irow (*pcrow :pointer-void) ; UDWORD FAR *pcrow (*rgfRowStatus :pointer-void) ; UWORD FAR *rgfRowStatus ) - :module :odbc + :module "odbc" :returning :short) ; RETCODE_SQL_API (def-function "SQLDataSources" @@ -307,18 +306,18 @@ (fDirection :short) (*szDSN string-ptr) ; UCHAR FAR *szDSN (cbDSNMax :short) ; SWORD cbDSNMax - (*pcbDSN :pointer-void) ; SWORD *pcbDSN + (*pcbDSN (* :short)) ; SWORD *pcbDSN (*szDescription string-ptr) ; UCHAR *szDescription (cbDescriptionMax :short) ; SWORD cbDescriptionMax - (*pcbDescription :pointer-void) ; SWORD *pcbDescription + (*pcbDescription (* :short)) ; SWORD *pcbDescription ) - :module :odbc + :module "odbc" :returning :short) ; RETCODE_SQL_API (def-function "SQLFreeEnv" ((henv sql-handle) ; HSTMT hstmt ) - :module :odbc + :module "odbc" :returning :short) ; RETCODE_SQL_API @@ -335,15 +334,51 @@ (def-struct sql-c-date (year :short) - (month :short) - (day :short)) + (month :short) + (day :short)) (def-struct sql-c-timestamp (year :short) - (month :short) - (day :short) - (hour :short) - (minute :short) - (second :short) - (fraction :long)) + (month :short) + (day :short) + (hour :short) + (minute :short) + (second :short) + (fraction :int)) + +;;; Added by KMR + +(def-function "SQLSetEnvAttr" + ((henv sql-handle) ; HENV henv + (attr :int) + (*value :pointer-void) + (szLength :int)) + :module "odbc" + :returning :int) + +(def-function "SQLTables" + ((hstmt :pointer-void) + (catalog-name :pointer-void) + (catalog-name-length :short) + (schema-name :pointer-void) + (schema-name-length :short) + (table-name :pointer-void) + (table-name-length :short) + (table-type-name :pointer-void) + (table-type-name-length :short)) + :returning :short) + + +(def-function "SQLStatistics" + ((hstmt :pointer-void) + (catalog-name :pointer-void) + (catalog-name-length :short) + (schema-name :pointer-void) + (schema-name-length :short) + (table-name :cstring) + (table-name-length :short) + (unique :short) + (reserved :short)) + :returning :short) +