J'ai un problème étrange ou peut-être pas si étrange avec mon sqlite db. J'ai un champ de type "Texte" et cela a fonctionné comme un charme avec tous les textes anglais depuis des lustres.La mise à jour SQLITE échoue avec le code d'erreur 1 (SQLITE_ERROR)
Le texte dans le champ utilisé pour provenir d'un Mdit CEdit. Maintenant, je suis passé à CRichEditCtrl pour prendre en charge le formatage et les textes UNICODE. Le CRichEditCtrl dumps le texte formaté sous forme hexadécimal comme: {\ rtf1 \ ansi \ ansicpg1252 \ deff0 \ deflang1033 {\ fonttbl {\ f0 \ fnil \ fcharset0 MS Shell Dlg 2;}} ect.
Une fois againt le sqlite l'enregistre la plupart du temps très bien. Mais quelque temps il ne donne pas un code d'erreur SQLITE_ERROR/* Erreur SQL ou base de données manquante * /. le message n'est pas trop utile. le db existe et économise la plupart du temps ???? Allez comprendre. Voici le code:
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;
}
Rien d'ordinaire je pense.
S'il vous plaît laissez-moi savoir si vous avez des idées. Peut-il être dû à beaucoup de backslashes dans le format RTF qui confond en quelque sorte sqlite ?? Oh, ce n'est pas lié à la taille du texte enregistré. merci beaucoup. Val
Hey Tor, je soupçonnais aussi les backslashes. Donc, vous êtes sûr que si mon texte contient quelque chose, le sqlite peut essayer de l'interpréter au lieu de le traiter comme un TEXTE dans mon champ UPDATE 'value ...'? – val
Vous pouvez imprimer le cmd var dans un journal afin que vous puissiez voir exactement à quoi il ressemble quand il est envoyé. –