用string写sql语句写数据到sqlite3数据库
我要把网页html数据写入sqlite3数据库。
因为sqlite3中有转义字符,要将单引号转换为两个单引号,所以我使用了:
CString srcStr;
srcStr.Format("%s",buf);//buf为从html文件中读出的char*数据
scrStr.Replace("'","''");
string sql_update;//因为同事的sql语句使用的string类型,所以我这里进行了转换
sql_update = srcStr.GetBuffer(srcStr.GetLength());
......//
之后我就拼装sql语句执行,开始发现没有问题:
但后来测试了一篇较大的html文件,大概有170k,就发现sql语句执行出错。
之前有人说过CString的Format有长度限制
我觉得非常奇怪,就把执行的sql语句写到一个文件中:
FILE *fp;
fp = fopen("c://sql.txt", "a+b");
fwrite(sql_update.c_str(), sql_update.length(), 1, fp);
fclose(fp);
奇妙的事情发生了,我将该语句直接在命令行贴入sqlite执行,没有任何问题!
我感觉我的问题出在了3次字符串类型转换上面,从char*到cstring再到string,但是直接用string写到文件里面去的sql又可以正常执行,我现在相当的疑惑,希望大家能够帮助我。
[解决办法]
看上去无解 估计只能转成char看下数据出了什么问题