Update of /cvsroot/htoolkit/HSQL/SQLite3/Database/HSQL
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14159/SQLite3/Database/HSQL
Modified Files:
SQLite3.hsc
Log Message:
Change the type of stmtExecute. This time in order to make it compatible with Oracle.
Index: SQLite3.hsc
===================================================================
RCS file: /cvsroot/htoolkit/HSQL/SQLite3/Database/HSQL/SQLite3.hsc,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** SQLite3.hsc 9 Jan 2006 13:53:56 -0000 1.6
--- SQLite3.hsc 9 Jan 2006 14:49:23 -0000 1.7
***************
*** 125,130 ****
, stmtClose = sqlite3_finalize stmt >>= handleSqlResult sqlite
, stmtExecute= executePrepared defs sqlite stmt
- , stmtReset = sqlite3_reset stmt >>= handleSqlResult sqlite
- , stmtSetParam=setParam sqlite stmt
, stmtFetch = fetch stmt
, stmtGetCol = getColValue stmt
--- 125,128 ----
***************
*** 146,151 ****
, stmtClose = sqlite3_finalize stmt >>= handleSqlResult sqlite
, stmtExecute= throwDyn SqlUnsupportedOperation
- , stmtReset = throwDyn SqlUnsupportedOperation
- , stmtSetParam=throwDyn SqlUnsupportedOperation
, stmtFetch = fetch stmt
, stmtGetCol = getColValue stmt
--- 144,147 ----
***************
*** 154,164 ****
})
! executePrepared [] sqlite stmt = do
sqlite3_step stmt
changes <- sqlite3_changes sqlite
return $! fromIntegral changes
! executePrepared _ sqlite stmt = do
return (-1)
getFieldDefs :: SQLite3Stmt -> CInt -> CInt -> IO [FieldDef]
getFieldDefs stmt index count
--- 150,185 ----
})
! executePrepared [] sqlite stmt values = do
! sqlite3_reset stmt >>= handleSqlResult sqlite
! setParams sqlite stmt 1 values
sqlite3_step stmt
changes <- sqlite3_changes sqlite
return $! fromIntegral changes
! executePrepared _ sqlite stmt values = do
! sqlite3_reset stmt >>= handleSqlResult sqlite
! setParams sqlite stmt 0 values
return (-1)
+ setParams sqlite stmt index [] = return ()
+ setParams sqlite stmt index (SqlStringValue value : values) = do
+ withCStringLen value $ \(cstr,len) -> do
+ sqlite3_bind_text stmt index cstr (fromIntegral len) (#const SQLITE_TRANSIENT) >>= handleSqlResult sqlite
+ setParams sqlite stmt (index+1) values
+ setParams sqlite stmt index (SqlIntValue value : values) = do
+ sqlite3_bind_int stmt index (fromIntegral value) >>= handleSqlResult sqlite
+ setParams sqlite stmt (index+1) values
+ setParams sqlite stmt index (SqlDoubleValue value : values) = do
+ sqlite3_bind_double stmt index value >>= handleSqlResult sqlite
+ setParams sqlite stmt (index+1) values
+ setParams sqlite stmt index (SqlBoolValue value : values) = do
+ alloca $ \pchar -> do
+ poke pchar (castCharToCChar $! (if value then 't' else 'f'))
+ sqlite3_bind_text stmt index pchar 1 (#const SQLITE_TRANSIENT) >>= handleSqlResult sqlite
+ setParams sqlite stmt (index+1) values
+ setParams sqlite stmt index (SqlClockTimeValue value : values) = throwDyn SqlUnsupportedOperation
+ setParams sqlite stmt index (SqlNullValue : values) = do
+ sqlite3_bind_null stmt index >>= handleSqlResult sqlite
+ setParams sqlite stmt (index+1) values
+
getFieldDefs :: SQLite3Stmt -> CInt -> CInt -> IO [FieldDef]
getFieldDefs stmt index count
***************
*** 193,214 ****
else do strLen <- strlen cstr
f fieldDef cstr (fromIntegral strLen)
-
- setParam sqlite stmt index (SqlStringValue value) =
- withCStringLen value $ \(cstr,len) -> do
- res <- sqlite3_bind_text stmt (fromIntegral (index+1)) cstr (fromIntegral len) (#const SQLITE_TRANSIENT)
- handleSqlResult sqlite res
- setParam sqlite stmt index (SqlIntValue value) = do
- res <- sqlite3_bind_int stmt (fromIntegral (index+1)) (fromIntegral value)
- handleSqlResult sqlite res
- setParam sqlite stmt index (SqlDoubleValue value) = do
- res <- sqlite3_bind_double stmt (fromIntegral (index+1)) value
- handleSqlResult sqlite res
- setParam sqlite stmt index (SqlBoolValue value) =
- alloca $ \pchar -> do
- poke pchar (castCharToCChar $! (if value then 't' else 'f'))
- res <- sqlite3_bind_text stmt (fromIntegral (index+1)) pchar 1 (#const SQLITE_TRANSIENT)
- handleSqlResult sqlite res
- setParam sqlite stmt index (SqlClockTimeValue value) = throwDyn SqlUnsupportedOperation
- setParam sqlite stmt index (SqlNullValue ) = do
- res <- sqlite3_bind_null stmt (fromIntegral (index+1))
- handleSqlResult sqlite res
--- 214,215 ----
|