我想用ADO层执行T-SQL语句。 sql语句类似于:
DECLARE @var TABLE (id int)
INSERT INTO @var SELECT id FROM tblFoo WHERE name='myName' AND idx=2
SELECT * FROM tblFoo WHERE id IN (SELECT * FROM @var)
在SQL Server管理控制台中,一切正常。但是,如果我使用它来通过Open(sql)打开ADO_Recordset,那么记录集将不会被填充/打开。 eof()说:记录集没有打开。
问题是:如何演示将导致ADO层上的记录集的T-SQL stataments?
答案 0 :(得分:1)
在Options
方法的Open()
参数中,您需要传入CommandTypeEnum.adCmdText
。
请参阅此链接以获取更多信息http://msdn.microsoft.com/en-us/library/ms675544(v=vs.85).aspx
同时将您的查询更改为:
SELECT * FROM tblFoo WHERE name='myName' AND idx=2
答案 1 :(得分:0)
您需要将此SQL视为普通测试 类似的东西:
cmd.CommandType = adCmdText