各位大哥,我有一个关于cursor的问题,想要请教,谢谢了,在线等待

salt3000 2003-08-19 03:43:47
我的cursor的声明语句如下:
declare ht_curs cursor for select changjiafeiyong,changjiazhekou,jisuanleixing,zhi,shuliangs,danjia,danjia_kd from #t1 order by hetongbianhao,bianhao for update

可是为什么系统报错说:The cursor is READ ONLY
报错行数是指向declare cursor 那句话的
为什么啊!!!我写了for update 的呀
...全文
83 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
salt3000 2003-08-19
  • 打赏
  • 举报
回复
结贴喽
salt3000 2003-08-19
  • 打赏
  • 举报
回复
order by 对,就是order by 的问题,谢谢,老大,谢谢
hjb111 2003-08-19
  • 打赏
  • 举报
回复
declare ht_curs cursor for select changjiafeiyong,changjiazhekou,jisuanleixing,zhi,shuliangs,danjia,danjia_kd from #t1 order by hetongbianhao,bianhao for read only
zjcxc 元老 2003-08-19
  • 打赏
  • 举报
回复
问题应该出在order by 上,有order by 的情况是不支持更新的.

你试试
declare ht_curs cursor for select changjiafeiyong,changjiazhekou,jisuanleixing,zhi,shuliangs,danjia,danjia_kd from #t1 for update
txlicenhe 2003-08-19
  • 打赏
  • 举报
回复
-- =============================================
-- Declare and using an UPDATE cursor
-- =============================================
DECLARE <@variable_1, sysname, @v1> <datatype_for_variable_1, sysname, varchar(20)>,
<@variable_2, sysname, @v2> <datatype_for_variable_2, sysname, varchar(40)>

DECLARE <cursor_name, sysname, test_cursor> CURSOR
FOR SELECT <column_1, sysname, au_fname>, <column_2, sysname, au_lname> FROM <table_name, sysname, pubs.dbo.authors>
FOR UPDATE of <column_1, sysname, au_fname>

DECLARE @count smallint
SELECT @count = 1

OPEN <cursor_name, sysname, test_cursor>
FETCH NEXT FROM <cursor_name, sysname, test_cursor> INTO <@variable_1, sysname, @v1>, <@variable_2, sysname, @v2>

WHILE (@@fetch_status <> -1)
BEGIN
IF (@@fetch_status <> -2)
BEGIN
-- PRINT 'add user-defined code here...'
-- eg
PRINT 'updating record of ' + @v1 + ' ' + @v2
UPDATE pubs.dbo.authors
SET au_fname = @v1 + '-' + CAST(@count AS varchar(4))
WHERE au_lname = @v2
END
FETCH NEXT FROM <cursor_name, sysname, test_cursor> INTO <@variable_1, sysname, @v1>, <@variable_2, sysname, @v2>
SELECT @count = @count + 1
END

CLOSE <cursor_name, sysname, test_cursor>
DEALLOCATE <cursor_name, sysname, test_cursor>
GO

txlicenhe 2003-08-19
  • 打赏
  • 举报
回复
最好有全部代码。

try:
declare ht_curs cursor for select changjiafeiyong,changjiazhekou,jisuanleixing,zhi,shuliangs,danjia,danjia_kd from #t1 order by hetongbianhao,bianhao for update of changjiafeiyong
CrazyFor 2003-08-19
  • 打赏
  • 举报
回复
declare ht_curs cursor for select changjiafeiyong,changjiazhekou,jisuanleixing,zhi,shuliangs,danjia,danjia_kd from #t1 order by hetongbianhao,bianhao for update 字段1,字段2,字段3....

把要更新的字段跟在后面,如上.
CrazyFor 2003-08-19
  • 打赏
  • 举报
回复
declare ht_curs cursor for select changjiafeiyong,changjiazhekou,jisuanleixing,zhi,shuliangs,danjia,danjia_kd from #t1 order by hetongbianhao,bianhao for update 字段1,字段2,字段3....

把要更新的字段跟在后面,如上.
内容概要:本文系统讲解了Python编程中的两个基础知识点——注释和输出函数print()。详细阐述了单行注释(#)与多行注释(三引号)的语法规则、书写规范及实际应用场景,强调注释的核心作用在于提升代码可读性、辅助团队协作、便于后期维护与调试。同时深入解析了print()函数的基本功能及其三个关键参数:*args(支持多个输出内容,以逗号分隔)、sep(自定义内容间分隔符,默认为空格)和end(控制输出结尾是否换行,默认换行)。通过具体代码示例直观展示了不同参数组合下的输出效果,帮助读者掌握灵活控制输出格式的方法。整体内容结构清晰,理论与实践结合紧密,适合初学者建立扎实的编程基础。; 适合人群:Python初学者、编程入门学生、转行人员以及希望巩固基础语法、培养良好编码习惯的开发者;需具备基本的计算机操作能力。; 使用场景及目标:①掌握Python中单行与多行注释的正确书写方式,提升代码可维护性与协作效率;②熟练运用print()函数及其参数,实现多样化的输出控制,为后续数据处理与程序调试打下坚实基础; 阅读建议:此资源适合作为Python入门首课内容,建议边学习边在代码编辑器中动手实践文中所有示例,亲自测试注释效果与print()函数各参数的组合应用,从而加深理解并逐步形成规范的编程风格。

34,874

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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