使用MSADO15封装的Recordset15::Open方法传入多行TSQL语句时,例如:
CString strQuery("BEGIN INSERT INTO tb VALUES('a',1) SELECT @@IDENTITY AS RESULTID END")
执行recordSet.Open(strQuery,...)后,发现没有返回结果,也就是SELECT @@IDENTITY AS RESULTID这句执行无效,但是INSERT的语句执行成功了,但是如果把INSERT 语句和SELECT语句分成两个Open方法执行,则可以得到SELECT的返回结果,
开始怀疑是Open方法不能执行多句SQL,但实际我连续写两条INSERT INTO语句用Open执行发现是可以插入两条数据的,但是接在后面的SELECT仍然无法返回结果(从recordSet中查询返回结果)
以上语句是随便打的,真实语句在SQL Server查询分析器中直接执行是成功的,所以不用怀疑语法问题
寻求解决方案~存储过程之类的就不用了,就是不想用存储过程才想直接用T-SQL语句完成的,求教~
CString strQuery("BEGIN INSERT INTO tb VALUES('a',1) SELECT @@IDENTITY AS RESULTID END")
执行recordSet.Open(strQuery,...)后,发现没有返回结果,也就是SELECT @@IDENTITY AS RESULTID这句执行无效,但是INSERT的语句执行成功了,但是如果把INSERT 语句和SELECT语句分成两个Open方法执行,则可以得到SELECT的返回结果,
开始怀疑是Open方法不能执行多句SQL,但实际我连续写两条INSERT INTO语句用Open执行发现是可以插入两条数据的,但是接在后面的SELECT仍然无法返回结果(从recordSet中查询返回结果)
以上语句是随便打的,真实语句在SQL Server查询分析器中直接执行是成功的,所以不用怀疑语法问题
寻求解决方案~存储过程之类的就不用了,就是不想用存储过程才想直接用T-SQL语句完成的,求教~
CString strQuery("INSERT INTO tb VALUES('a',1) \n SELECT @@IDENTITY AS RESULTID")
从你上面的程序看,应该是表里面没有一个自动生成的标识值(比如一个自增的ID)导致的执行无效。