Has anybody used Sqlite InMemory Database ?, I have tried using it. It works correctly with hmgSqlite functions from the Great Mr. Rathinagiri and others but fails when using SQLMIX. Code is given below for testing. This works in console mode.
Kindly advice.
Warm regards,
Jayadev
Code: Select all
/* SqliteTest.hbp
sddsqlt3.hbc
hbsqlit3.hbc
-run
SqliteTest.prg
hmgsqlite.prg
*/
#require "hbsqlit3"
REQUEST SDDSQLITE3, SQLMIX
Procedure Main
LOCAL db := 0, nHandle := 0
local aDetails := {}
db := sqlite3_open( ':memory:', .t.)
sqlite3_exec( db, "CREATE TABLE t1( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER )" )
sqlite3_exec( db, ;
"BEGIN TRANSACTION;" + ;
"INSERT INTO t1( name, age ) VALUES( 'Jayadev', 18 );" + ;
"INSERT INTO t1( name, age ) VALUES( 'Shahid', 19 );" + ;
"INSERT INTO t1( name, age ) VALUES( 'Sasha', 25 );" + ;
"INSERT INTO t1( name, age ) VALUES( 'Ivet', 28 );" + ;
"COMMIT;" )
? sqlite3_libversion()
aDetails := sql( db, "Select * from t1")
if !empty(aDetails)
showarray(aDetails) // pseudo function to see aDetails, you can use aeval instead.
else
msgstop("Empty aDetails")
return NIL
endif
RDDSETDEFAULT( "SQLMIX" )
nHandle := RDDINFO( RDDI_CONNECT, {"SQLITE3", ':memory:'} ) // not recognised
*nHandle := RDDINFO( RDDI_CONNECT, {"SQLITE3", hb_dirBase() + "jdtest.sdb"} ) // works correctly with disk files
if nHandle == 0
MsgStop("Unable connect to the server!", "Error")
else
msgbox(hb_valtoexp(nHandle))
ENDIF
DBUSEAREA( .T.,, "select * from t1", "t1" )
browse()
return nIL