That will make this case legal. What's the general behavior though? Is it not guaranteed to be consumed during the call to bind_blob? In other words, without providing SQLITE_TRANSIENT, can I get into trouble with this?
- Sherief > -----Original Message----- > From: [EMAIL PROTECTED] [mailto:sqlite-users- > [EMAIL PROTECTED] On Behalf Of Dan > Sent: Friday, July 25, 2008 3:22 AM > To: General Discussion of SQLite Database > Subject: Re: [sqlite] Hard time with blobs > > > On Jul 25, 2008, at 12:05 PM, Sherief N. Farouk wrote: > > > I'm having a problem with the last parameter, the function used to > > dispose > > of the blob. Does sqlite defer actually inserting the blob into the > > database > > somehow? In other words, will I get into trouble if I do: > > > > Sqlite3_bind_blob(Statement, 1, BlobData, BlobSize, do_nothing); > > Delete [] BlobData; > > > > Use SQLITE_TRANSIENT. > > Dan. > > > ? > > > > - Sherief > > > >> -----Original Message----- > >> From: [EMAIL PROTECTED] [mailto:sqlite-users- > >> [EMAIL PROTECTED] On Behalf Of Dan > >> Sent: Friday, July 25, 2008 12:51 AM > >> To: General Discussion of SQLite Database > >> Subject: Re: [sqlite] Hard time with blobs > >> > >> > >> On Jul 25, 2008, at 10:35 AM, Sherief N. Farouk wrote: > >> > >>> I want to use blobs to store binary objects in the database, but > >>> I'm having > >>> a hard time understanding how they work. First of all, I don't see > >>> a way to > >>> set a blob's size, and sqlite3_blob_write doesn't increase the size > >>> of the > >>> blob, which is putting me in a weird catch-22 situation. > >>> > >>> What's the best solution for storing a bunch of binary objects, > >>> given the > >>> two alternatives: They may be immutable (write once, read many), or > >>> mutable > >>> (write many, possibly overwriting regions or appending, write > many)? > >> > >> You can work with blobs without using the sqlite3_blob_XXX() APIs. > >> Insert > >> blobs by binding them with sqlite3_bind_blob(), retrieve them using > >> sqlite3_column_blob(). > >> > >> Sometimes it is better to use the sqlite3_blob_XXX() APIs because > >> they > >> allow sqlite to work with large blobs without creating a copy of the > >> blob in memory. To create a large zeroed blob in the database, use > >> either sqlite3_bind_zeroblob() or the "zeroblob" SQL function. Then > >> populate it using sqlite3_blob_XXX() after it has been inserted. > >> > >> Dan. > >> > >> _______________________________________________ > >> 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 > > _______________________________________________ > 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