导航:
论坛 -> 数据库专区
斑竹:liumazi,waterstone
作者:
2004/5/2 10:02:41
标题:
如何调用sql server 中带参数的存储过程
浏览:2560
加入我的收藏
楼主:
我用dbexpress中的TSQLStoredProc,我在TSQLStoredProc中输入两个参数为 @EID,@RPrecent 可是每次执行,都出现“list index out of bounds(0)”的错误,如果不带参数,则一切正常。
----------------------------------------------
-
作者:
2004/5/6 9:42:52
1楼:
不会没有人会吧
----------------------------------------------
-
作者:
2004/5/7 12:47:31
2楼:
有没有高手助我,五一发的贴子,五一过了,还是没人回
----------------------------------------------
-
作者:
2004/5/7 18:01:04
4楼:
不行呀,您用的是TAdoStoreProc 可我用的是TSqlStoreProc,您的解答中:ADOStoredProc1.Parameters.AddParameter的意思及我的理解,我在TSqlStoreProc中,把代码修改成这样,可还是不行。 如下: ======================= procedure TForm1.Button1Click(Sender: TObject); var P1, P2: TParam; begin with Datamodule2.SQLStoredProc1 do begin StoredProcName := 'RaiseSalary'; Params.Clear; P1 := TParam.Create(Params, ptInput); P2 := TParam.Create(Params, ptInput); p1.Value:='A00002'; p2.Value:=2.2; try params.AddParam(p1); ExecProc; finally P1.Free; P2.Free; end; end; 一样的错误信息。 如果是手工在Object Inspector 中做参数,更是不可以。
----------------------------------------------
-
作者:
2004/5/8 7:46:24
5楼:
高手在哪里呀
----------------------------------------------
-
作者:
masow (masow)
★☆☆☆☆
-
普通会员
2004/5/8 8:47:10
6楼:
exec关键字好像可以,试试吧
----------------------------------------------
masow
作者:
2004/5/8 11:09:42
7楼:
我不知道用TSQLStoredProc adostoredproc是这样的: adostroedproc1.procedurename:='你存储过程名'; adostoredproc1.parameters.refresh; adostoredproc1.parameters[1].value:=edit1.text; adostoredproc1.parameters[2].value:=edit1.text; adostoredproc1.prepare:=true; adostoredproc1.xecpro; end; 如果你的第二个参数是output参数的话 adostroedproc1.procedurename:='你存储过程名'; adostoredproc1.parameters.refresh; adostoredproc1.parameters[1].value:=edit1.text; adostoredproc1.parameters.direct:=pdoutput; adostoredproc1.parameters[2].value:=' ' adostoredproc1.prepare:=true; adostoredproc1.xecpro; end;
----------------------------------------------
lsh
作者:
2004/5/8 11:20:17
8楼:
我写错了: 应该是; adostroedproc1.procedurename:='你存储过程名'; adostoredproc1.parameters.refresh; adostoredproc1.parameters[1].value:=edit1.text; adostoredproc1.parameters[2].value:=edit2.text; adostoredproc1.prepare:=true; adostoredproc1.xecpro; end;
----------------------------------------------
lsh
作者:
2004/5/8 15:00:37
9楼:
我不能用dostoredproc,我想求教TSQLStoredProc的用法。 我用的数据库是sql server2000数据库,如果是用其它数据库,好像没有出现什么问题,只是用sql server2000的数据库,再使用TSqlStoreProc,一定用不了参数。 如果没有用参数,倒是没什么问题,很正常。
----------------------------------------------
-
作者:
2004/5/8 22:34:39
10楼:
还有没有人能够再帮我看一下
----------------------------------------------
-