当前位置: 代码迷 >> 其他数据库 >> sqlite怎么向字段中插入sql语句?
  详细解决方案

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

热度:887   发布时间:2013-02-26 00:00:00.0
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'')";
  相关解决方案