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

Reply via email to