Query 運行SQL7.0的存儲過程(100分)

  • 主题发起人 主题发起人 江林勝
  • 开始时间 开始时间

江林勝

Unregistered / Unconfirmed
GUEST, unregistred user!
組件的屬性如下:
Query1 DataBaseName: RT_RS
SQL: SELECT * FROM WQ(:@W1)
Params.@W1.Datatype:ftString
@w1.paramtype:ptinput
@w1.value.Type:string

SQL 的存儲過程如下:
CREATE PROCEDURE WQ (@W1 CHAR(10)) AS
SELECT * FROM WORKER WHERE F0001=@W1

表WORKER是建立在數據庫RT_RS里的
按鈕的Click事件為:
With Query1 do
begin
Close;
ParamByName('@W1').AsString:=Edit1.Text;
Execsql;
Open;
end;

執行後提示如下:
General SQL error.
Line 1:Incorrect syntax near '@p1'.

請問各位這該怎麼辦.
 
用TQuery试过,不行,不带参数的存储过程都不能运行.
用TStoreProc试一试
 
没有必要用存储过程,你可以直接在客户端使用TQuery构件,其执行效率和存储过程
几乎是一样的,TQuery传输的是字符串,而存储过程只传输参数,
TQuery也可以使用参数,如果需要我可以E-Mail a Demo to you.
 
李生:
請E_MAIL一份給我,JianglingSheng@netease.com
謝謝意

注:我用Query組件主要是想查看我的查詢結果.
 
運行存儲過程, 用TStoredProcedure天经地义.

不过你的存储过程并不复杂,所以没必要用存储过程.

With Query1 do
begin
SQL.Clear;
SQL.Add('SELECT * FROM WORKER WHERE F0001 = ''' + Edit1.Text + '''');
Open;
end;
 
站成xWolf
 
调存储过程不能用“SELECT * FROM WQ(:@W1)”

With Query1 do
begin
Close;
SQL.text:='WQ '+ Edit1.Text
Open;
end;
不就完了吗

 
这样试试,
with query1 do
begin
close;
sql.clear;
sql.add('exec wq @w1=:w1');
parambyname('w1').asstring:=edit1.text;
execsql;
end;
 
多人接受答案了。
 
后退
顶部