怎样用query执行存储过程?(50分)

  • 主题发起人 主题发起人 wuzhenzhen
  • 开始时间 开始时间
W

wuzhenzhen

Unregistered / Unconfirmed
GUEST, unregistred user!
我在query中的SQL语句中:select * from ***('***'为存储过程名),激活
时老是出错,为什么?(query控件除了指定该SQL数据库之外还需要设置什么
属性吗?)
 
该存储过程没有参数,错误如下:
Tabledo
es not exist.
[Microsoft][ODBC SQL SERVER DIRVER][Sql Server]invalid object name
'wzz'
('wzz'是我写的一个存储过程名,已经存在该库中的)
 
execute wzz
前面刚讨论过,自己找以下
 
前面的问题也是你问的
 
要用TQuery构件从存储过程中检索数据集,必须正确设置SQL属性。在SELECT语句中,要用存储过程的名称代替表格的名称。如果存储过程需要传递输入参数的话,要
仿照Object Pascal语言的过程那样,在存储过程后面用一对圆括号把参数的值括起
来。如果有多个输入参数,彼此之间要用逗号隔开。
例如,InterBase服务器上有一个存储过程叫GET_EMP_PROJ,它需要传递一个输入参
数叫EMP_NO,并且通过一个输出参数叫PROJ_ID来传递执行结果。下面是这个存储过
程的代码:
CREATE PROCEDURE GET_EMP_PROJ (EMP_NO SMALLINT)
CREATE PROCEDURE GET_EMP_PROJ (EMP_NO SMALLINT)
RETURNS (PROJ_ID CHAR(5))ASbegin
FOR
SELECT PROJ_IDFROM EMPLOYEE_PROJECTWHERE EMP_NO = :EMP_NOINTO
:PROJ_IDDOSUSPend;
END
相应地,要通过上面这个存储过程检索数据集,SQL语句可以这样写:SELECT *FROM
GET_EMP_PROJ(52)
注意大小写
 
?????我不明白?我什么时候问过这个问题?
 
谢谢g622
我也是看了核心编程里面这一段的,但自己试就不行,不知道为什么?
 
i will try it tnt
 
g622:
我的存储过程并不是在程序中定义的,而是直接建立在SQL 服务器上的,这应该没
有影响吧?
 
如果返回的數據量大的話用:存儲過程.
With Query1do
begin
Close;
SQL.text:='WQ '+ Edit1.Text;
Open;
end;
注:WQ為存儲過程名.
Edit1.Text為要輸入的查詢內容.
 
多人接受答案了。
 
后退
顶部