我有一个奇怪的或可能不是很奇怪的问题,我的sqlite数据库。我有一个“文本”类型的领域,它的工作就像魅力与任何英文文本的年龄。SQLITE更新失败,错误代码为1(SQLITE_ERROR)
该字段中的文本用于来自MFC CEdit。现在我切换到CRichEditCtrl来支持格式化和UNICODE文本。 CRichEditCtrl以十六进制格式转储格式化文本,如下所示:{\ rtf1 \ ansi \ ansicpg1252 \ deff0 \ deflang1033 {\ fonttbl {\ f0 \ fn \ s \ fcharset0 MS Shell Dlg 2;}}等。
一旦sqlite保存它大部分时间就好了。但有一段时间,它不会给出错误代码SQLITE_ERROR/* SQL错误或缺少数据库* /。该消息不是太有用。数据库的存在和保存大部分时间?去搞清楚。 这里是代码:
error = sqlite3_exec(db,cmd,0,0,0);
if (error != SQLITE_OK){
errMsg.Format("Unable to save notes to: %s\nSQLite Error: %d",filename,error);
AfxMessageBox(_T(errMsg));
sqlite3_close(db);
return false;
}
没什么不寻常的我想。
如果您有任何想法,请让我知道。它可能是由于RTF格式的多种反斜杠,它以某种方式混淆sqlite?哦,这与保存的文字大小无关。 非常感谢。 Val
嘿Tor,我也怀疑反斜杠。所以,你确定如果我的文本包含一些'somthing的sqlite可能会试图解释它,而不是把它作为一个TEXT在我的更新字段'值...'? – val 2009-12-11 21:43:24
您可能希望将cmd var打印到某些日志,以便您可以在发送时准确查看它的外观。 – 2009-12-11 22:18:21