X-Git-Url: http://git.kpe.io/?p=clsql.git;a=blobdiff_plain;f=db-odbc%2Fodbc-ff-interface.lisp;h=0fa0824f008ef5bb68a9b062a0032a7a055cc800;hp=6df89376f55fb384164b157c7a9eaccfeb5088d7;hb=906d7a71b35ee1cd6d281623694bc90ced22c339;hpb=a6576bcf62dd1e710085ec74089d0730d599001b diff --git a/db-odbc/odbc-ff-interface.lisp b/db-odbc/odbc-ff-interface.lisp index 6df8937..0fa0824 100644 --- a/db-odbc/odbc-ff-interface.lisp +++ b/db-odbc/odbc-ff-interface.lisp @@ -6,8 +6,6 @@ ;;;; 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. ;;;; @@ -19,17 +17,34 @@ (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 '(* #.$ODBC-LONG-TYPE)) +(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 @@ -41,7 +56,7 @@ ((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 @@ -52,7 +67,7 @@ (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 @@ -66,7 +81,15 @@ ((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 @@ -152,7 +175,7 @@ (cbColNameMax :short) ; SWORD cbColNameMax (*pcbColName (* :short)) ; SWORD FAR *pcbColName (*pfSqlType (* :short)) ; SWORD FAR *pfSqlType - (*pcbColDef (* :unsigned-int)) ; UDWORD FAR *pcbColDef + (*pcbColDef (* #.$ODBC-ULONG-TYPE)) ; UDWORD FAR *pcbColDef (*pibScale (* :short)) ; SWORD FAR *pibScale (*pfNullable (* :short)) ; SWORD FAR *pfNullable ) @@ -290,7 +313,7 @@ :module "odbc" :returning :short) ; RETCODE_SQL_API - ; level 2 + ; level 2 (def-function "SQLExtendedFetch" ((hstmt sql-handle) ; HSTMT hstmt (fFetchType :short) ; UWORD fFetchType @@ -323,11 +346,11 @@ ;;; 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)) @@ -336,7 +359,7 @@ (year :short) (month :short) (day :short)) - + (def-struct sql-c-timestamp (year :short) (month :short) @@ -354,7 +377,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) @@ -366,6 +398,7 @@ (table-name-length :short) (table-type-name :pointer-void) (table-type-name-length :short)) + :module "odbc" :returning :short) @@ -379,6 +412,7 @@ (table-name-length :short) (unique :short) (reserved :short)) + :module "odbc" :returning :short)