X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=db-odbc%2Fodbc-ff-interface.lisp;h=00e7cd6f386b848e738bd23c00eaaaa1c0451f11;hb=a33175f8396cc948094ba4a2ea3a54fec3e11066;hp=6dd699754c7f35303fa94beef586b715571b9368;hpb=d0f147d0e7d942b379bd7cd472f26b00c33916bc;p=clsql.git diff --git a/db-odbc/odbc-ff-interface.lisp b/db-odbc/odbc-ff-interface.lisp index 6dd6997..00e7cd6 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. @@ -19,17 +19,26 @@ (in-package #:odbc) (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 '(* :long)) +(def-foreign-type sql-handle-ptr (* sql-handle)) +(def-foreign-type string-ptr (* :unsigned-char)) +(def-type long-ptr-type (* #.$ODBC-LONG-TYPE)) +;; odbc v3 +(def-function "SQLAllocHandle" + ((handle-type :short) + (input-handle sql-handle) + (*phenv sql-handle-ptr)) + :module "odbc" + :returning :short) +;; deprecated (def-function "SQLAllocEnv" ((*phenv sql-handle-ptr) ; HENV FAR *phenv ) :module "odbc" :returning :short) ; RETCODE_SQL_API +;; deprecated (def-function "SQLAllocConnect" ((henv sql-handle) ; HENV henv (*phdbc sql-handle-ptr) ; HDBC FAR *phdbc @@ -67,6 +76,7 @@ :module "odbc" :returning :short) ; RETCODE_SQL_API +;; deprecated (def-function "SQLAllocStmt" ((hdbc sql-handle) ; HDBC hdbc (*phstmt sql-handle-ptr) ; HSTMT FAR *phstmt @@ -87,7 +97,7 @@ (def-function "SQLPrepare" ((hstmt sql-handle) ; HSTMT hstmt (*szSqlStr :cstring) ; UCHAR FAR *szSqlStr - (cbSqlStr :long) ; SDWORD cbSqlStr + (cbSqlStr :int) ; SDWORD cbSqlStr ) :module "odbc" :returning :short) ; RETCODE_SQL_API @@ -101,7 +111,7 @@ (def-function "SQLExecDirect" ((hstmt sql-handle) ; HSTMT hstmt (*szSqlStr :cstring) ; UCHAR FAR *szSqlStr - (cbSqlStr :long) ; SDWORD cbSqlStr + (cbSqlStr :int) ; SDWORD cbSqlStr ) :module "odbc" :returning :short) ; RETCODE_SQL_API @@ -123,24 +133,24 @@ (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" :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" :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" :returning :short) ; RETCODE_SQL_API @@ -150,11 +160,11 @@ (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" :returning :short) ; RETCODE_SQL_API @@ -163,10 +173,10 @@ ((hstmt sql-handle) ; HSTMT hstmt (icol :short) ; UWORD icol (fDescType :short) ; UWORD fDescType - (rgbDesc :cstring) ; PTR rgbDesc + (rgbDesc string-ptr) ; PTR rgbDesc (cbDescMax :short) ; SWORD cbDescMax - (*pcbDesc :cstring) ; SWORD FAR *pcbDesc - (*pfDesc :pointer-void) ; SDWORD FAR *pfDesc + (*pcbDesc (* :short)) ; SWORD FAR *pcbDesc + (*pfDesc (* :int)) ; SDWORD FAR *pfDesc ) :module "odbc" :returning :short) ; RETCODE_SQL_API @@ -190,8 +200,8 @@ (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" :returning :short) ; RETCODE_SQL_API @@ -214,10 +224,10 @@ (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" :returning :short) ; RETCODE_SQL_API @@ -229,10 +239,10 @@ (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" @@ -244,7 +254,7 @@ (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" @@ -260,7 +270,7 @@ (def-function "SQLPutData" ((hstmt sql-handle) ; HSTMT hstmt (rgbValue :pointer-void) ; PTR rgbValue - (cbValue :long) ; SDWORD cbValue + (cbValue :int) ; SDWORD cbValue ) :module "odbc" :returning :short) ; RETCODE_SQL_API @@ -276,7 +286,7 @@ (def-function "SQLSetConnectOption" ((hdbc sql-handle) ; HDBC hdbc (fOption :short) ; UWORD fOption - (vParam :long) ; UDWORD vParam + (vParam :int) ; UDWORD vParam ) :module "odbc" :returning :short) ; RETCODE_SQL_API @@ -294,7 +304,7 @@ (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 ) @@ -306,10 +316,10 @@ (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" :returning :short) ; RETCODE_SQL_API @@ -334,18 +344,17 @@ (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 @@ -355,7 +364,16 @@ (*value :pointer-void) (szLength :int)) :module "odbc" - :returning :int) + :returning :short) + +(def-function "SQLGetEnvAttr" + ((henv sql-handle) ; HENV henv + (attr :int) + (*value :pointer-void) + (szLength :int) + (string-length-ptr (* :int))) + :module "odbc" + :returning :short) (def-function "SQLTables" ((hstmt :pointer-void) @@ -370,3 +388,16 @@ :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) + +