In your second case you have the wrong pathname for your database file and Sqlite is creating an empty one at whatever path you actually specified.
Yang WenYuan wrote: > Hi, > > There is a very strange problem when I play with the sqlite-ce database. > > I put the database file and my application program together in the same > folder. I call sqlite3_open(), the database can be opened properly. I call > sqlite3_step(), it return SQLITE_ROW, that means it found the record in the > database. > > However, if I put the database file in the other disk, the problem occurred. > I call sqlite3_open(), the database can still be opened properly. However, I > call sqlite3_step(), it return SQLITE_DONE, that means it cannot found the > record in the database. > > Actually, the database file is exactly same, only different is the store > place. I wonder whether it is limitation for sqlite-Wince? > > Any comment? Thanks! Code is as follows: > > { > sqlite3 *db; > char *zErrMsg = 0; > int rc, length; > char *sqlcmd; > sqlite3_stmt * stat; > TCHAR MsgChar[ 256 ], MsgTmpChar[ 256 ]; > > // * Put in the same folder, it works properly. * > // rc = sqlite3_open( "initprint.db", &db); > > // * Put in the different folder, it cannot work properly. * > rc = sqlite3_open( "\\FlashDisk\\System\\initprint.db", &db); > if( rc ) > { > sqlite3_close(db); > return false; > } > > sqlcmd = sqlite3_mprintf( "SELECT * FROM PRINT WHERE TAGTYPE=%d AND > BARCODE='%s';", intTagType, chrBarCode ); > rc = sqlite3_prepare( db, sqlcmd, -1, &stat, 0 ); > if( rc != SQLITE_OK ) > { > mbstowcs( MsgTmpChar, sqlite3_errmsg( db ), strlen( > sqlite3_errmsg( db ) ) ); > wsprintf( MsgChar, _T( "SQL error: %s\n" ), MsgTmpChar ); > > MessageBox( MsgChar, _T( "Error Info" ), MB_OK ); > > sqlite3_free( sqlcmd ); > sqlite3_close(db); > return false; > } > > rc = sqlite3_step( stat ); > if( rc != SQLITE_ROW ) > { > mbstowcs( MsgTmpChar, sqlite3_errmsg( db ), strlen( > sqlite3_errmsg( db ) ) ); > wsprintf( MsgChar, _T( "SQL error: %s\n" ), MsgTmpChar ); > > MessageBox( MsgChar, _T( "Error Info" ), MB_OK ); > > sqlite3_free( sqlcmd ); > sqlite3_close(db); > return false; > } > else > { > const void *printdata = sqlite3_column_blob( stat, 2 ); > length = sqlite3_column_bytes( stat, 2 ); > memcpy( buffer, printdata, length ); > buffer[ length ] = 0x00; > *len = length; > } > > rc = sqlite3_finalize( stat ); > if( rc != SQLITE_OK ) > { > mbstowcs( MsgTmpChar, sqlite3_errmsg( db ), strlen( > sqlite3_errmsg( db ) ) ); > wsprintf( MsgChar, _T( "SQL error: %s\n" ), MsgTmpChar ); > > MessageBox( MsgChar, _T( "Error Info" ), MB_OK ); > > sqlite3_free( sqlcmd ); > sqlite3_close(db); > return false; > } > > sqlite3_free( sqlcmd ); > sqlite3_close(db); > return true; > > } > > > WenYuan > > > > > ____________________________________________________________________________________ > Be a better friend, newshound, and > know-it-all with Yahoo! Mobile. Try it now. > http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ > _______________________________________________ > sqlite-users mailing list > sqlite-users@sqlite.org > http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users