dbexpress调用MSSQL的存储过程的问题(100分)

  • 主题发起人 主题发起人 dolang
  • 开始时间 开始时间
D

dolang

Unregistered / Unconfirmed
GUEST, unregistred user!
过程如下:<br>create &nbsp;procedure usp_test (<br>@i int<br>)<br>as<br>declare @a int<br>--declare @t table(a int,b int,c int,d int)<br>create table #t<br>(a int,b int,c int,d int)<br>insert into #t<br>values(1,2,3,4)<br><br>select * from #t<br><br>用TSQLSTOREDPROC来执行,就报错:cursor not returned from query<br>TSQLSTOREDPROC的schemaname也设为了DBO.<br>如果把那段INSERT去掉,就不会报错,但这样就根本达不到目的.<br>有哪位成功执行这样的过程的,请指教.
 
#是临时表,把#去掉试试。
 
as<br>declare @a int<br><br>在 as 之后插入 <br>Set NoCount ON &nbsp; <br>否则返回的第一个是插入操作涉及到的记录数,第二个才是数据集
 
参考levi的方法,把过程更改如下:<br>create &nbsp;procedure usp_test (<br>@i int<br>)<br>as<br>Set NoCount on<br>declare @a int<br>--declare @t table(a int,b int,c int,d int)<br>create table #t<br>(a int,b int,c int,d int)<br>insert into #t<br>values(1,2,3,4)<br>select * from #t<br><br>再用用TSQLSTOREDPROC来执行就不会报错.<br>但直接用DBGRID来显示数据的话,就会全部显示为0.后来用一个PROVIDER和一个CLIENTDATASET配合来使用,就正确的显示数据了.<br>谢谢二位.
 
后退
顶部