;;;; Purpose: Function definitions for UFFI interface to ODBC
;;;; Author: Kevin M. Rosenberg
;;;;
-;;;; $Id: odbc-package.lisp 7061 2003-09-07 06:34:45Z kevin $
-;;;;
;;;; This file, part of CLSQL, is Copyright (c) 2004 by Kevin M. Rosenberg
;;;; and Copyright (C) Paul Meurer 1999 - 2001. All rights reserved.
;;;;
(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))
+;; ODBC3
+(def-function "SQLAllocHandle"
+ ((handle-type :short)
+ (input-handle sql-handle)
+ (*phenv sql-handle-ptr))
+ :module "odbc"
+ :returning :short)
+;; ODBC3 version of SQLFreeStmt, SQLFreeConnect, and SSQLFreeStmt
+(def-function "SQLFreeHandle"
+ ((handle-type :short) ; HandleType
+ (input-handle sql-handle)) ; Handle
+ :module "odbc"
+ :returning :short) ; RETCODE_SQL_API
+
+
+;; 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
((hdbc sql-handle) ; HDBC hdbc
(*szDSN :cstring) ; UCHAR FAR *szDSN
(cbDSN :short) ; SWORD cbDSN
- (*szUID :cstring) ; UCHAR FAR *szUID
+ (*szUID :cstring) ; UCHAR FAR *szUID
(cbUID :short) ; SWORD cbUID
(*szAuthStr :cstring) ; UCHAR FAR *szAuthStr
(cbAuthStr :short) ; SWORD cbAuthStr
(def-function "SQLDriverConnect"
((hdbc sql-handle) ; HDBC hdbc
(hwnd sql-handle) ; SQLHWND hwnd
- (*szConnStrIn string-ptr) ; UCHAR FAR *szConnStrIn
+ (*szConnStrIn :cstring) ; UCHAR FAR *szConnStrIn
(cbConnStrIn :short) ; SWORD cbConnStrIn
(*szConnStrOut string-ptr) ; UCHAR FAR *szConnStrOut
(cbConnStrOutMax :short) ; SWORD cbConnStrOutMax
((hdbc sql-handle)) ; HDBC hdbc
:module "odbc"
:returning :short) ; RETCODE_SQL_API
-
+
+
+;;deprecated
+(def-function "SQLFreeConnect"
+ ((hdbc sql-handle)) ; HDBC hdbc
+ :module "odbc"
+ :returning :short) ; RETCODE_SQL_API
+
+;; deprecated
(def-function "SQLAllocStmt"
((hdbc sql-handle) ; HDBC hdbc
(*phstmt sql-handle-ptr) ; HSTMT FAR *phstmt
(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
(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
(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
(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
((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
(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
(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
(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"
(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"
(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
(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
:module "odbc"
:returning :short) ; RETCODE_SQL_API
- ; level 2
+ ; 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
)
(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
;;; foreign type definitions
-;;(defmacro %sql-len-data-at-exec (length)
+;;(defmacro %sql-len-data-at-exec (length)
;; `(- $SQL_LEN_DATA_AT_EXEC_OFFSET ,length))
-(def-struct sql-c-time
+(def-struct sql-c-time
(hour :short)
(minute :short)
(second :short))
(year :short)
(month :short)
(day :short))
-
+
(def-struct sql-c-timestamp
(year :short)
(month :short)
(hour :short)
(minute :short)
(second :short)
- (fraction :long))
+ (fraction :int))
;;; Added by KMR
(*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)
(table-name-length :short)
(table-type-name :pointer-void)
(table-type-name-length :short))
+ :module "odbc"
+ :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))
+ :module "odbc"
:returning :short)