十万火急!!!高手接分!!!

lunzi 2000-04-04 10:33:00
我的存储过程如下:
CREATE proc RefreshNo(@aFldName char(40),@aTabName char(40)) AS
declare cur1 cursor dynamic
for
select 序号 from test

declare @i int
declare @ci char(4)

set @i=1
open cur1
fetch next from cur1
while @@fetch_status=0 begin
update test set 序号=@i where current of cur1
fetch next from cur1
set @i=@i+1
end
close cur1
deallocate cur1

test表结构:序号 int null,姓名 char(10)
为什么我在Delphi5中执行存储过程后,表test中的序号字段只能更改一部分,
我在sql server7中执行,则可全部更改
十万火急!!!高手接分!!!
...全文
152 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
LittleStar 2000-05-06
  • 打赏
  • 举报
回复
我曾经在D4下用SQLSERVER的API调用有光标的procedrue也有此问题(在ISQL_W执行procdrue又没事)。后来只有;
while mycheck do
begin
exec myproc;
end;
江王 2000-05-04
  • 打赏
  • 举报
回复
我觉得存储过程直接执行与编程执行应该没有什么区别,可能是编程执行时由于其它的一些数据库操作导致某些数据被锁住,从而使Update操作失败。不知你是否编了一个简单程序来对这个存储过程进行单独测试,如没不妨试试。
Ardus 2000-05-02
  • 打赏
  • 举报
回复
Try this:
CREATE proc RefreshNo(@aFldName char(40),@aTabName char(40)) AS
declare @i int
Select @i = 0
Update users set 序号=@i , @i=@i+1

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧