sql7.0的出错信息如何查(200分)

  • 主题发起人 主题发起人 bzb
  • 开始时间 开始时间
B

bzb

Unregistered / Unconfirmed
GUEST, unregistred user!
我们的数据库突然不能修改了,出现提示
error 16916:A cursor with name 'hc'doesnot exist
这是什么意思
类似这种出错信息,解决的思路如何?
谢谢!
 
请使用SQL的BOOK ONLINE 可以查询到你要的信息!
大致是说你定义的CURSOR 系统是不能识别的!去检查你定义的CURSOR吧!
 
用select * from master.dbo.sysmessages可以查到所有的错误信息;
在Books Onlines里打system error messages也可以查到。
再查一下DECLARE CURSOR看看你的cursor定义得对不对。
 
着句话说你cursor‘hc’不存在!
 
cursor hc 我根本没有定义
我重装了sql没有问题了,但还是想搞清楚他
DECLARE CURSOR如何使用。
 
没有定义就不要open啊。

对DECLARE CURSOR帮助里说得很清楚——

语法:
DECLARE cursor_name CURSOR
[LOCAL | GLOBAL]
[FORWARD_ONLY | SCROLL]
[STATIC | KEYSET | DYNAMIC | FAST_FORWARD]
[READ_ONLY | SCROLL_LOCKS | OPTIMISTIC]
[TYPE_WARNING]
FOR select_statement
[FOR UPDATE [OF column_name [,...n]]]

例子:
DECLARE authors_cursor CURSOR

FOR SELECT * FROM authors

OPEN authors_cursor

FETCH NEXT FROM authors_cursor

 
CURSOR是游标,类似语言中的指针。就向上面的例子里,第一句是定义一个游标,
for后面是游标所指向的字段,第三句是打开游标,第四句是给游标所指的字段付给一个
变量,他没写,是这样FETCH NEXT FROM authors_cursor into @x 然后你就可以用这个
变量啦~!用完后记得关闭游标呀~!
close authors_cursor
deallocate authors_cursor
 
因为数据库研究的比较少,所以有些不明白
游标有什么用,什么时候用合适
 
如果是在Delphi里对SQL SERVER进行操作,游标基本上没用。
虽然有些复杂查询可以用游标做(在服务器端),但我感觉以T-SQL的支持完全可以在客户端实现。
我觉得它一开始是提供给一些语言作为内嵌SQL使用的。实际上现在的很多语言都用不到它了,
因为这些语言本身都提供了数据对象的封装和支持,就象Delphi的数据集控件和相关方法。
——似乎这是个历史遗留问题:)

所以我认为现在它的主要用途是给数据库服务器本身写存储过程用
(做循环,就象Delphi里对表用Next方法做循环判断或处理;
其实查Next的帮助也会看到“cursor”概念的涉及,它的概念和数据库里的是一回事)。
——因为我也没实际地用过游标,所以以上观点是纯粹非技术性的:)
 
光标HC已经存在
 
说一下具体情况,比如是在Delphi里执行还是在SQL SERVER里执行出现的错误?
执行的什么操作?涉及到哪个存储过程?该存储过程是怎么写的?
 
多人接受答案了。
 
后退
顶部