T
tongwenhuan2003
Unregistered / Unconfirmed
GUEST, unregistred user!
在sql server 中创建并执行.<br>create procedure test<br> @id varchar(10) output<br>as<br>begin<br> set @id = 'agc'<br>end<br>procedure TForm2.Button4Click(Sender: TObject);<br>var iProc:String;<br>begin<br> //ts:=cdsCustomer.AppServer.GetSum_Proc;<br> ADOStoredProc1.Close;<br> ADOStoredProc1.ProcedureName:='test;1';<br> ADOStoredProc1.Parameters.Refresh;<br> ADOStoredProc1.ExecProc;<br> iProc:= ADOStoredProc1.Parameters.ParamByName('@id').Value;<br> ListBox1.Items.Add(iProc);<br>end;<br>出错信息:过程test需要参数'@id',但未有提供参数<br><br>是不是在调用时候还有创建@id这个?<br>不知道怎么解决,急!!! <br>问题可以解决,但是还未找到错误原因。<br><br>来自:52free, 时间:2006-10-27 15:27:00, ID:3607964<br>这个问题好像讨论了好几天了,其实你在查询分析器里能实现的在delphi里一样可以实现<br>他也是一个SQL,这个我好像提示过,但似乎没人去试试<br><br> AdoQuery1.SQL.Clear;<br> AdoQuery1.SQL.Add('Exec Test ID output');<br> AdoQuery1.ExecSQL;<br> Caption := AdoQuery1.Parameters.ParamByName('@ID').value<br><br>就这么简单,我用delphi很多年都没用过ADOStoredProc <br><br>根据你提供的方法可以得到值。<br><br>来自:hongxing_dl, 时间:2006-10-27 15:34:23, ID:3607977<br>那你将它定义为函数吧:<br>create function test()<br> returns varchar(10)<br>as<br>begin<br> return ('agc');<br>end<br><br>to hongxing_dl 你的意思是把sql server 中的存储过程改为函数吗,有的不明白!