请问一下我在VC里面用Sqllite插入记录的问题:
请问一下我在VC里面用Sqllite的问题://"INSERTINTO[EC_Dict]([WordID],[Word],[YinBiao],[JieShi])VALUE...
请问一下我在VC里面用Sqllite的问题:
//"INSERT INTO [EC_Dict] ([WordID], [Word], [YinBiao], [JieShi]) VALUES ('m_WordNum','m_Word','m_YinBiao','m_ExPlain');",
"INSERT INTO [EC_Dict] ([WordID], [Word], [YinBiao], [JieShi]) VALUES (StrWordID,StrWord,StrYinBiao,StrJieShi);",
用上面的已经就可以,用下面的一句就不可以,其中:
strcpy(StrWordID,m_WordNum.GetBuffer(m_WordNum.GetLength()));
strcpy(StrWord,m_Word.GetBuffer(m_Word.GetLength()));
strcpy(StrYinBiao,m_YinBiao.GetBuffer(m_YinBiao.GetLength()));
strcpy(StrJieShi,m_ExPlain.GetBuffer(m_ExPlain.GetLength()));
也就是说,如果传字符串是可以的,传字符串变量就不可以了,如果要传字符串变量改怎么传?
谢谢大家的回答,现在又有新的问题:
sprintf(StrSql,"SELECT * FROM EC_Dict where %s = \'%s\';","WordID",StrWordID);
rc = sqlite3_exec(db, "BEGIN;", 0, 0, &zErrMsg);
rc = sqlite3_get_table( db , StrSql , &azResult , &nrow , &ncolumn , &zErrMsg );
无论查询是否成功rc都会返回SQLITE_OK,只是成功的时候azResult , nrow , ncolumn里可以读取正确的值
删除记录也是这样,请用过sqlite的大侠帮看看是怎么回事,谢谢,如果能解决问题,可以加分! 展开
//"INSERT INTO [EC_Dict] ([WordID], [Word], [YinBiao], [JieShi]) VALUES ('m_WordNum','m_Word','m_YinBiao','m_ExPlain');",
"INSERT INTO [EC_Dict] ([WordID], [Word], [YinBiao], [JieShi]) VALUES (StrWordID,StrWord,StrYinBiao,StrJieShi);",
用上面的已经就可以,用下面的一句就不可以,其中:
strcpy(StrWordID,m_WordNum.GetBuffer(m_WordNum.GetLength()));
strcpy(StrWord,m_Word.GetBuffer(m_Word.GetLength()));
strcpy(StrYinBiao,m_YinBiao.GetBuffer(m_YinBiao.GetLength()));
strcpy(StrJieShi,m_ExPlain.GetBuffer(m_ExPlain.GetLength()));
也就是说,如果传字符串是可以的,传字符串变量就不可以了,如果要传字符串变量改怎么传?
谢谢大家的回答,现在又有新的问题:
sprintf(StrSql,"SELECT * FROM EC_Dict where %s = \'%s\';","WordID",StrWordID);
rc = sqlite3_exec(db, "BEGIN;", 0, 0, &zErrMsg);
rc = sqlite3_get_table( db , StrSql , &azResult , &nrow , &ncolumn , &zErrMsg );
无论查询是否成功rc都会返回SQLITE_OK,只是成功的时候azResult , nrow , ncolumn里可以读取正确的值
删除记录也是这样,请用过sqlite的大侠帮看看是怎么回事,谢谢,如果能解决问题,可以加分! 展开
2个回答
2011-04-01
展开全部
SQLited的insert语句如何插入变量收藏
用sprintf可以实现字符串的变换如下面程序例子:void thread(arg){
char buf[256];
char *sql2;
int data;
data=arg; sprintf(buf,"insert into\"f2store\" values(%d);",data);
sql2=buf;
sqlite3_exec(db,sql2,0,0,&zErrMsg);}
大概就是这样了!哈哈
用sprintf可以实现字符串的变换如下面程序例子:void thread(arg){
char buf[256];
char *sql2;
int data;
data=arg; sprintf(buf,"insert into\"f2store\" values(%d);",data);
sql2=buf;
sqlite3_exec(db,sql2,0,0,&zErrMsg);}
大概就是这样了!哈哈
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询