求救:Delphi6.0调用带在执行字符串语句的存储过程的问题!(50)

  • 主题发起人 主题发起人 pqh10182008
  • 开始时间 开始时间
P

pqh10182008

Unregistered / Unconfirmed
GUEST, unregistred user!
因为确认存储过程的出问题语句就出现在下面所示的语句中。所有以只列出部分 Create table #tempCy001 (mach_no char(18), item_no char(20), P_Sum numeric(18,3))Insert into #tempCy001 values('M0001', 'F0000-00000', 888888) Set @StrSQL='insert into #tempCy001 item_no, P_Sum) 'Set @StrSQL=@StrSQL+' Select B.mach_no,B.item_no , 'Select @StrSQL=@StrSQL+' P01+P02+P03+P04+P05 As P_Sum ' +' from TpsHd A left join TpsBd B on A.ps_no=B.Ps_no 'execute ( @StrSQL)select * from #tempCy001 --存储过程中最后一条语句。注意此@StrSQL字符串语句中,自定义字段P_Sum 的值,并不是固定为P01+P02+P03+P04+P05有可能为P01,P02,p03,P04,P05,p06...至p31之间的组合。这也就是说为什么要用@StrSQL字符串语句方式向临时表中插入数据的原因。问题出现在我用SQL查询分析器执行存储过程得到正确结果25行其中包含 'M0001', 'F0000-00000', 888888 这一条数据。但我在DELPHI6.0 用BDE的执行存储过程中,DBGRID显示却只有一条数据'M0001', 'F0000-00000', 888888这是为什么呢? 请各位指教!
 
你返回的结果集是一个表...如果只有一条,有可能是BDE的原因...以前曾经看到过BDE取结果集的时候,如果太多,他会一次只显示一部分,你需要查看剩下的一部分的时候,得再向后查看才行或者你用ADO试下,看会不会有这样的问题
 
SQL写错了Create table #tempCy001 ( mach_no char(18), item_no char(20), P_Sum numeric(18,3))Insert into #tempCy001 values('M0001', 'F0000-00000', 888888)Set @StrSQL='insert into #tempCy001 (mach_no, item_no, P_Sum) 'Set @StrSQL=@StrSQL+' Select B.mach_no,B.item_no , 'Set @StrSQL=@StrSQL+' P01+P02+P03+P04+P05 As P_Sum ' +' from TpsHd A left join TpsBd B on A.ps_no=B.Ps_no 'execute ( @StrSQL)select * from #tempCy001 --存储过程中最后一条语句试试用过SQLServer带的"事件控查器"吗? 调试一下,不行加isnull函数execute ( @StrSQL)select * from #tempCy001 --存储过程中最后一条语句。
 
后退
顶部