In addition to what Igor mentions:

If you want this array to be cross platform portable from Big endian to Little 
endian you either need to store some type of endianness flag.

If you dig into the sqlite source you'll find a function like 
sqlite3_put_varint.

It will convert 32 bit or 64 bit unsinged integers into a portable byte string.
returning the number of bytes back that the string consumes. 
You could then create a struct/type as follows
struct {
    uint8_t  bytes;
    uint8_t  buf[3];
}  vint;

vint.bytes = sqlite3_put_varint (&vint.buf,  yourShort );

then write the entire vint to the BLOB...

Retrieve the blob as normal. Then unload the shorts use the invers function.

But this seems like a lot of extra work to me.

Why not create a table that has the integer value and insert the data? One row 
per array element ????

HTH

C S <[EMAIL PROTECTED]> wrote: hi all i have a question regarding Blobs, that is
storing images into the database. 

my image by default is an unsigned short array and to
bind blobs it wants a byte array. i am not sure i am
doing this right at all. is there a universal cross
platform way for this easy conversion? 

so far the code i have is:
.........
char *byteArray = (char *) malloc((size * 2) *
sizeof(char));
.........

for(unsigned int i = 0; i < index < size; i++)
{
 byteArray[2 * index] = (char)buffer[index];
 byteArray[(2 * index) + 1] = ( (char) buffer[index]
>> 1);

then i prepare the statement which is successful then:

status = sqlite3_bind_blob(statement, 1, byteArray,
size * 2, free);

some questions i have: i get an error of '25' back
from status and looking on the sqlite documention it
says the 2nd parameter to sql bind was out of range. i
have no idea how the 2nd parameter can be out of
range. 

my next question is once you have the blob in the
database how in the world do you read it back out? of
course when i do read it back out i will need to
convert it back to a short array to be able to use it.


i am using C++(g++ compiler) on linux. thanks in
advance! 


      
____________________________________________________________________________________
Never miss a thing.  Make Yahoo your home page. 
http://www.yahoo.com/r/hs
_______________________________________________
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