From: <kr_...@us...> - 2006-01-09 14:49:32
|
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 ---- |