Thanks, Mike. 

Because, each record has different barcode, tagtype,
and printdata. That means, I need to call:

sprintf( sqlcmd, "INSERT INTO TEST( BARCODE, TAGTYPE,
PRINTDATA ) VALUES( %s, %d, ? );", chrBarCode, tagtype
);
rc = sqlite3_prepare( db, sqlcmd, -1, &stat, 0 );

to update the contents of the each records inside the
loop. Am I right? 

Any suggestion? Thanks.

WenYuan





--- Michael Ruck <[EMAIL PROTECTED]> wrote:

> You should only prepare the statement once before
> the loop. The only thing
> you should do in the loop itself is bind varying
> data and call sqlite_step.
> There's no need to call prepare, reset, finalize
> inside the loop. If
> chrPrintData doesn't change you can also move
> bind_blob in front of the
> loop.
> 
> Mike
> 
> -----Ursprüngliche Nachricht-----
> Von: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] Im Auftrag
> von Yang WenYuan
> Gesendet: Mittwoch, 9. April 2008 06:08
> An: sqlite-users@sqlite.org
> Betreff: [sqlite] WinCE Memory Problem
> 
> I use the Sqlite in the PDA which is WinCE OS. I
> need to add more than
> 200,000 records. I used sqlite3_prepare->
> sqlite3_bind_blob->sqlite3_step->sqlite3_finalize to
> write each record in to
> Database. However, I found that after each record is
> inserted, the PDA
> memory became larger and larger. In the end, the
> whole PDA memory is
> occupied by this application and the system halt. Is
> there any thing I miss
> to release the memory?
> Following is my code:
> 
> sqlite3 *db;
> sqlite3_stmt * stat;
> char *zErrMsg = 0;
> char sqlcmd[ 512 ];
> int rc;
> char chrBarCode[ 16 ], chrPrintData[ 512 ]; int
> tagtype;
> 
> 
> 
> for( i = 0; i < 2000000; i ++ )
> {     
>       sprintf( sqlcmd, "INSERT INTO TEST( BARCODE,
> TAGTYPE, PRINTDATA )
> VALUES( %s, %d, ? );", chrBarCode, tagtype );
>       
>       rc = sqlite3_prepare( db, sqlcmd, -1, &stat, 0 );
>       if( rc != SQLITE_OK )
>       {
>           sqlite3_close(db);
>           return -1;
>       }
>       
>       rc = sqlite3_bind_blob( stat, 1, chrPrintData,
> length, NULL ); 
>       if( rc != SQLITE_OK )
>       {
>           sqlite3_close(db);
>           return -1;
>       }
>       
>       rc = sqlite3_step( stat );                      
>       if( rc != SQLITE_DONE )
>       {
>           sqlite3_close(db);
>           return -1;
>       }
>       
>       rc = sqlite3_reset( stat );
>       if( rc != SQLITE_OK )
>       {
>           sqlite3_close(db);
>           return -1;
>       }
>       
>       rc = sqlite3_finalize( stat );
>       if( rc != SQLITE_OK )
>       {
>           sqlite3_close(db);
>           return -1;
>       }
>       
> }
> 
> 
> WenYuan
> 
> 
> 
>      
>
______________________________________________________________________
> Search, browse and book your hotels and flights
> through Yahoo! Travel.
> http://sg.travel.yahoo.com
> _______________________________________________
> 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
> 



      ______________________________________________________________________
Search, browse and book your hotels and flights through Yahoo! Travel.
http://sg.travel.yahoo.com
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to