将varchar值'newID'转换为数据类型为int的列时发生语法错误,晕死我了
连接一个数据库,查询一条记录
表Sys_Sequenceinfo里有两个字段ID,SeqTime,当然还有其它字段.ID为int类型,SeqTime为datetime类型
CRecordset rs(&m_db);
int newID = -1;
CDBVariant var;
rs.Open(CRecordset::dynaset,"select max(ID) from Sys_SequenceInfo");
if(var.m_dwType!=DBVT_NULL)
newID = var.m_iVal;
rs.Close();
rs.Open(CRecordset::dynaset,"Select SeqTime from Sys_SequenceInfo where ID = 'newID'");
rs.Close();
前面一条查询语句没出问题,后一条查询语句老出现"将varchar值'newID'转换为数据类型为int的列时发生语法错误",这是怎么搞的???
急死我了,请各位解答一下,谢谢。
------解决方案----------------------try:
rs.Open(CRecordset::dynaset,"Select SeqTime from Sys_SequenceInfo where ID ="+newID);
------解决方案--------------------ID为int类型
ID = 'newID'
数值型和字符串能等吗?
------解决方案--------------------rs.Open(CRecordset::dynaset,"Select SeqTime from Sys_SequenceInfo where ID = 'newID'");
--------------------------------------------------
这句中,newid相对于SQL语句而言,是外部变量,不能直接放在单引号内。
应该通过连接字符串的方式连接到SQL语句中。
newID是整型,需要先转换为字符型,如:
rs.Open(CRecordset::dynaset,"Select SeqTime from Sys_SequenceInfo where ID = ' + 转换为字符型后的newID );
关于VC中如何转换,你应该知道吧