t-sql ado recordset / SQL Server

时间:2011-03-02 15:25:25

标签: tsql ado

我想用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?

2 个答案:

答案 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