MSSQL2000存储过程PP
AS
BEGIN
 CREATE TABLE #TMP (ID INT, NAME VARCHAR(10))
 INSERT #TMP (ID, NAME) VALUES (1,'AAA')
 SELECT * FROM #TMP 
END
DBExpress中的执行代码
 SQLStoreProc.close;
 SQLStoreProc.StoreProcName:='PP';
 SQLStoreProc.Open;
抛出异常:没有返回数据集的SQL语句;(ADO中的ADOStoreProc可以正常执行该存储过程).
将存储过程PP中的INSERT #TMP (ID, NAME) VALUES (1,'AAA')语句
DBExpress中的执行代码可以正常执行,并返回#TMP查询结果集

解决方案 »

  1.   

    修改上句:
    将存储过程PP中的INSERT #TMP (ID, NAME) VALUES (1,'AAA')语句注释后,
    DBExpress中的执行代码可以正常执行,并返回#TMP查询结果集
      

  2.   

    INSERT INTO #TMP (ID, NAME) VALUES (1,'AAA')
      

  3.   

    TSQLStoreProc.Open; 方法不支持使用存在增删改(Insert, Delete, Update语句)的存储过程?
    TADOStoreProc.Open; 方法支持使用存在增删改(Insert, Delete, Update语句)的存储过程.
    TSQLStoreProc.Open; 如何解决以上生成临时表并向临时表写入数据而后返回临时表数据问题?
      

  4.   

    DBExpress 要求存储过程在第一个语句返回结果然后才能处理数据
      

  5.   

    建议使用corelab的驱动
    http://www.devart.com/dbx/download.html