{\r
//ZThread::Guard<ZThread::Mutex> g(DB::instance()->m_mutex);\r
//PThread::Guard g(DB::Instance()->m_mutex);\r
- data=(void *)sqlite3_column_blob(m_statement,column);\r
- length=sqlite3_column_bytes(m_statement,column);\r
+ int bloblength=sqlite3_column_bytes(m_statement,column);\r
+ if(bloblength>length)\r
+ {\r
+ bloblength=length;\r
+ }\r
+ if(bloblength<length)\r
+ {\r
+ length=bloblength;\r
+ }\r
+ const void *blobptr=sqlite3_column_blob(m_statement,column);\r
+ if(blobptr)\r
+ {\r
+ std::copy((unsigned char *)blobptr,(unsigned char *)blobptr+bloblength,(unsigned char *)data);\r
+ }\r
+ else\r
+ {\r
+ length=0;\r
+ }\r
return true;\r
}\r
else\r