现象:删除数据的时候只有先查看过数据就会出现删除失败。跟网上说的事务上锁是有关系的。。
昨天忙活了一天,慢天的找原因。。。
代码
sqlite3_stmt *stat;//写二进制数据时要用的结构
char sqlstr[100];
CString strSQL;
strSQL="select * from sample where name like '";
strSQL+=strFile;
strSQL+="';";
int nLength=strSQL.GetLength();
TCHAR *sz=new TCHAR[nLength+1];
sz=strSQL.GetBuffer(nLength);
strSQL.ReleaseBuffer();
WideCharToMultiByte( CP_ACP, 0, sz, -1, sqlstr, 100, NULL, NULL );
sqlite3_prepare(sqlite->db,sqlstr, -1, &stat, 0);
sqlite3_step(stat);
const void * test = sqlite3_column_blob(stat, 3);
//得到字段中数据的长度
//拷贝该字段
memcpy(&SampData,test,788);
char sqlstr[100];
CString strSQL;
strSQL="select * from sample where name like '";
strSQL+=strFile;
strSQL+="';";
int nLength=strSQL.GetLength();
TCHAR *sz=new TCHAR[nLength+1];
sz=strSQL.GetBuffer(nLength);
strSQL.ReleaseBuffer();
WideCharToMultiByte( CP_ACP, 0, sz, -1, sqlstr, 100, NULL, NULL );
sqlite3_prepare(sqlite->db,sqlstr, -1, &stat, 0);
sqlite3_step(stat);
const void * test = sqlite3_column_blob(stat, 3);
//得到字段中数据的长度
//拷贝该字段
memcpy(&SampData,test,788);
最后加上这个就好了:
sqlite3_finalize( stat );
sqlite提供的代码还是比较好的!!!!