hsql-odbc-1.8.1: DB/HSQL/ODBC/Functions.hsc
{-# LANGUAGE ForeignFunctionInterface #-}
module DB.HSQL.ODBC.Functions where
import Foreign(FunPtr,Ptr)
import Foreign.C(CString)
import DB.HSQL.ODBC.Type(SQLSMALLINT,SQLUSMALLINT,SQLINTEGER,SQLLEN,SQLULEN
,SQLRETURN,HSTMT,HDBC,HENV,SQLHANDLE)
#include <HsODBC.h>
#ifdef mingw32_HOST_OS
#let CALLCONV = "stdcall"
#else
#let CALLCONV = "ccall"
#endif
foreign import #{CALLCONV} "HsODBC.h SQLAllocEnv"
sqlAllocEnv:: Ptr HENV -> IO SQLRETURN
#ifdef mingw32_HOST_OS
foreign import ccall "HsODBC.h &my_sqlFreeEnv"
sqlFreeEnv_p:: FunPtr (HENV -> IO ())
#else
foreign import ccall "HsODBC.h &SQLFreeEnv"
sqlFreeEnv_p:: FunPtr (HENV -> IO ())
#endif
foreign import #{CALLCONV} "HsODBC.h SQLAllocConnect"
sqlAllocConnect:: HENV -> Ptr HDBC -> IO SQLRETURN
foreign import #{CALLCONV} "HsODBC.h SQLFreeConnect"
sqlFreeConnect:: HDBC -> IO SQLRETURN
foreign import #{CALLCONV} "HsODBC.h SQLConnect"
sqlConnect:: HDBC -> CString -> Int -> CString -> Int -> CString -> Int
-> IO SQLRETURN
foreign import #{CALLCONV} "HsODBC.h SQLDriverConnect"
sqlDriverConnect:: HDBC -> Ptr () -> CString -> SQLSMALLINT -> CString
-> SQLSMALLINT -> Ptr SQLSMALLINT -> SQLUSMALLINT
-> IO SQLRETURN
foreign import #{CALLCONV} "HsODBC.h SQLDisconnect"
sqlDisconnect:: HDBC -> IO SQLRETURN
foreign import #{CALLCONV} "HsODBC.h SQLAllocStmt"
sqlAllocStmt:: HDBC -> Ptr HSTMT -> IO SQLRETURN
foreign import #{CALLCONV} "HsODBC.h SQLFreeStmt"
sqlFreeStmt:: HSTMT -> SQLUSMALLINT -> IO SQLRETURN
foreign import #{CALLCONV} "HsODBC.h SQLNumResultCols"
sqlNumResultCols:: HSTMT -> Ptr SQLUSMALLINT -> IO SQLRETURN
foreign import #{CALLCONV} "HsODBC.h SQLDescribeCol"
sqlDescribeCol:: HSTMT -> SQLUSMALLINT -> CString -> SQLSMALLINT
-> Ptr SQLSMALLINT -> Ptr SQLSMALLINT -> Ptr SQLULEN
-> Ptr SQLSMALLINT -> Ptr SQLSMALLINT
-> IO SQLRETURN
foreign import #{CALLCONV} "HsODBC.h SQLBindCol"
sqlBindCol:: HSTMT -> SQLUSMALLINT -> SQLSMALLINT -> Ptr a
-> SQLLEN -> Ptr SQLINTEGER
-> IO SQLRETURN
foreign import #{CALLCONV} "HsODBC.h SQLFetch"
sqlFetch:: HSTMT -> IO SQLRETURN
foreign import #{CALLCONV} "HsODBC.h SQLGetDiagRec"
sqlGetDiagRec:: SQLSMALLINT -> SQLHANDLE -> SQLSMALLINT -> CString
-> Ptr SQLINTEGER -> CString -> SQLSMALLINT -> Ptr SQLSMALLINT
-> IO SQLRETURN
foreign import #{CALLCONV} "HsODBC.h SQLExecDirect"
sqlExecDirect:: HSTMT -> CString -> Int -> IO SQLRETURN
foreign import #{CALLCONV} "HsODBC.h SQLSetConnectOption"
sqlSetConnectOption:: HDBC -> SQLUSMALLINT -> SQLULEN -> IO SQLRETURN
foreign import #{CALLCONV} "HsODBC.h SQLTransact"
sqlTransact:: HENV -> HDBC -> SQLUSMALLINT -> IO SQLRETURN
foreign import #{CALLCONV} "HsODBC.h SQLGetData"
sqlGetData:: HSTMT -> SQLUSMALLINT -> SQLSMALLINT -> Ptr ()
-> SQLINTEGER -> Ptr SQLINTEGER
-> IO SQLRETURN
foreign import #{CALLCONV} "HsODBC.h SQLTables"
sqlTables:: HSTMT -> CString -> SQLSMALLINT -> CString -> SQLSMALLINT
-> CString -> SQLSMALLINT -> CString -> SQLSMALLINT
-> IO SQLRETURN
foreign import #{CALLCONV} "HsODBC.h SQLColumns"
sqlColumns:: HSTMT -> CString -> SQLSMALLINT -> CString -> SQLSMALLINT
-> CString -> SQLSMALLINT -> CString -> SQLSMALLINT
-> IO SQLRETURN
foreign import #{CALLCONV} "HsODBC.h SQLMoreResults"
sqlMoreResults:: HSTMT -> IO SQLRETURN
#if defined(MSSQL_ODBC)
foreign import #{CALLCONV} "HsODBC.h SQLSetStmtAttr"
sqlSetStmtAttr:: HSTMT -> SQLINTEGER -> SQLINTEGER -> SQLINTEGER
-> IO SQLRETURN
#endif
-- |
-- ptrField thinc = (#ptr FIELD, thinc)
-- peekField = #peek FIELD
-- |
sqlNts:: SQLSMALLINT
sqlNts = #const SQL_NTS
sqlDriverNoPrompt:: SQLUSMALLINT
sqlDriverNoPrompt = #const SQL_DRIVER_NOPROMPT
sqlHandleEnv:: SQLSMALLINT
sqlHandleEnv = #const SQL_HANDLE_ENV
sqlHandleDbc:: SQLSMALLINT
sqlHandleDbc = #const SQL_HANDLE_DBC
sizeOfHStmt:: Int
sizeOfHStmt = #const sizeof(HSTMT)
sizeOfField:: Int
sizeOfField = #const sizeof(FIELD)
sqlHandleStmt:: SQLSMALLINT
sqlHandleStmt = #const SQL_HANDLE_STMT
sqlDrop:: SQLUSMALLINT
sqlDrop = #const SQL_DROP
fieldNameLength:: SQLSMALLINT
fieldNameLength = #const FIELD_NAME_LENGTH
sqlAutoCommit:: SQLUSMALLINT
sqlAutoCommit = #const SQL_AUTOCOMMIT
sqlAutoCommitOff:: SQLULEN
sqlAutoCommitOff = #const SQL_AUTOCOMMIT_OFF
sqlAutoCommitOn:: SQLULEN
sqlAutoCommitOn = #const SQL_AUTOCOMMIT_ON
sqlCommit:: SQLUSMALLINT
sqlCommit = #const SQL_COMMIT
sqlRollback:: SQLUSMALLINT
sqlRollback = #const SQL_ROLLBACK
sqlNullData:: SQLINTEGER
sqlNullData = #const SQL_NULL_DATA
sqlCChar:: SQLSMALLINT
sqlCChar = #const SQL_C_CHAR
-- (no #include <HsODBC.h> needed??
sqlAttrRowArraySize = #const SQL_ATTR_ROW_ARRAY_SIZE
sqlIsInteger = #const SQL_IS_INTEGER
sqlAttrCursorType = #const SQL_ATTR_CURSOR_TYPE
sqlCursorStatic = #const SQL_CURSOR_STATIC