Update of /cvsroot/htoolkit/HSQL/ODBC/Database/HSQL
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19528/Database/HSQL
Modified Files:
ODBC.hsc
Log Message:
return the number of affected rows
Index: ODBC.hsc
===================================================================
RCS file: /cvsroot/htoolkit/HSQL/ODBC/Database/HSQL/ODBC.hsc,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** ODBC.hsc 3 Jan 2006 22:59:46 -0000 1.6
--- ODBC.hsc 4 Jan 2006 19:47:57 -0000 1.7
***************
*** 74,77 ****
--- 74,78 ----
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 SQLRowCount" sqlRowCount :: HSTMT -> Ptr SQLINTEGER -> 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
***************
*** 194,200 ****
res <- sqlExecDirect hSTMT pQuery len
handleSqlResult (#const SQL_HANDLE_STMT) hSTMT res
res <- sqlFreeStmt hSTMT (#const SQL_DROP)
handleSqlResult (#const SQL_HANDLE_STMT) hSTMT res
! return (-1)
stmtBufferSize = 256
--- 195,205 ----
res <- sqlExecDirect hSTMT pQuery len
handleSqlResult (#const SQL_HANDLE_STMT) hSTMT res
+ numRows <- alloca $ \pNumRows -> do
+ res <- sqlRowCount hSTMT pNumRows
+ handleSqlResult (#const SQL_HANDLE_STMT) hSTMT res
+ peek pNumRows
res <- sqlFreeStmt hSTMT (#const SQL_DROP)
handleSqlResult (#const SQL_HANDLE_STMT) hSTMT res
! return $! fromIntegral numRows
stmtBufferSize = 256
|