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

将varchar值'newID'转换为数据类型为int的列时发生语法异常,晕死小弟我了

2012-01-28 
将varchar值newID转换为数据类型为int的列时发生语法错误,晕死我了连接一个数据库,查询一条记录表Sys_Se

将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中如何转换,你应该知道吧

热点排行