sqlite InMemory Database

General Help regarding HMG, Compilation, Linking, Samples

Moderator: Rathinagiri

Post Reply
jayadevu
Posts: 238
Joined: Tue May 19, 2009 7:10 am

sqlite InMemory Database

Post by jayadevu »

Hi,

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	
Post Reply