There is no warning. But as I can see the problem is here
If erase this line
lengthBLOB=blobGet.getBinaryLength();
end just print it like
cout<<"Retrieved binary Length: "<<blobGet.getBinaryLength()<<endl;
that everything is ok. But I need this integer that blobGet.getBinaryLength()
is returning, to keep it as a value.
Kiril
On 02/08/06, Martin Jenkins <[EMAIL PROTECTED]> wrote:
Kiril Dzolev wrote:
You're calling blobGet(), but blobGet is an unitialised variable of type
"CppSQLite3Binary" (whatever that is). Doesn't your compiler warn you
about that?
Martin
> const unsigned char* putBLOBInBinary([...])
> {
> [...]
> CppSQLite3Binary blobGet;
>
> [...]
> if (!q.eof()) {
> blobGet.setEncoded((unsigned char*)q.fieldValue("data"));
> This is not realy for this forum, but maybe somebody can tell me what I
am
> doing wrong. I am using CppSQLite wrapper.
>
> Code 1 : With this code "Segmentation fault"
>
> const unsigned char* putBLOBInBinary(CppSQLite3DB &db, int &lengthBLOB)
{
> CppSQLite3Query q;
> CppSQLite3Binary blobGet;
>
> q=db.execQuery("select data from bindata where id=1;");
> if (!q.eof()) {
> blobGet.setEncoded((unsigned char*)q.fieldValue("data"));
> lengthBLOB= blobGet.getBinaryLength();
> cout<<"Retrieved binary Length: "<<lengthBLOB <<endl;
> }
> return blobGet.getBinary();
> }
>
> function call from main()
> const unsigned char* pBufferOut;
> pBufferOut = putBLOBInBinary(db, lengthBLOB);
>
> Code 2 : With this code is ok (if I dont use function)
> CppSQLite3Query q;
> CppSQLite3Binary blobGet;
>
> q=db.execQuery("select data from bindata where id=1;");
> if (!q.eof()) {
> blobGet.setEncoded((unsigned char*)q.fieldValue("data"));
> lengthBLOB= blobGet.getBinaryLength();
> cout<<"Retrieved binary Length: "<<lengthBLOB <<endl;
> }
> pBufferOut=blobGet.getBinary();
>
> sorry if this is off topic,
> Kiril
>