首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

sqlite怎么向字段中插入sql语句?

2012-02-20 
sqlite如何向字段中插入sql语句??我想把sql语句存入sqlite数据库中,使用的数据库中的updatedata表有两个字

sqlite如何向字段中插入sql语句??
我想把sql语句存入sqlite数据库中,

使用的数据库中的updatedata表有两个字段,一个integer primary key,一个nvarchar;如下:

create table updatedata(sid integer primary key,sqlsrc nvarchar(20))

当向updatedata表中的sqlsrc 字段插入sql语句是出错,如下:

CString sqltemp,strSQL;
strSQL = L"insert into teabletest(Time,Cardid,Room) values (\'20110101\',\'12345678\',\'123\')";
sqltemp.Format(L"insert into updatedata(sid,sqlsrc) values (null, \'%s\');",strSQL);
db.execDML(sqltemp);

异常为:SQLITE_ERROR[1]: near "20110101": syntax error

如果把strSQL 赋值为不带“'”的语句如:

strSQL = L"insert into teabletest(Time,Cardid,Room) values (20110101,12345678,123)";
则能正常插入,但那已经不是sql语句了。

请问有啥方法可以把sql语句存到数据库中?




[解决办法]
打断点看一下sqltemp 的实际内容是什么
[解决办法]
各个数据库处理'转义的方式不一样
sqlite> insert into t123 values(1, 'insert into teabletest(Time,Cardid,Room) values (''20110101'',''12345678'',''123'')');
sqlite> select * from t123;
1|insert into teabletest(Time,Cardid,Room) values ('20110101','12345678','123')

因此,你可以用:
strSQL = L"insert into teabletest(Time,Cardid,Room) values (''20110101'',''12345678'',''123'')";

热点排行