IBM大型机论坛索引
 
登录
 
IBM大型机论坛索引 大型机:搜索 IBM Mainframe论坛:常见问题解答 寄存器
 

sqlerrd(3)行为异常


IBM大型机论坛 -> DB2
发表新话题   回复主题
查看上一个主题 :: 查看下一个主题  
作者 信息
Shaktiprasad

新的用户


已加入:2006年8月20日
帖子:34
地点:钦奈

发布发表:2010年2月11日,星期四,下午12:08
引用回复

嗨,

我只是想将sqlerrd(3)移到数据类型为9(9)的其他变量中,并在打开并获取一个游标后显示它。尽管游标返回的行数是有限的,但显示为0在两个地方都记录(在打开和获取之后)。

我以为显示会出现问题,所以直接检查变量sqlerrd(3)是否不等于0,然后显示“非零记录”,否则显示“零记录”,仅用于其他部分。

我知道sqlerrd(3)应该给出查询成功完成后处理的记录数,但不确定为什么它不起作用。
一些机构请让我知道是否可能造成这种情况。

提前致谢
回到顶部
查看用户资料 发送私信
凯坦·瓦哈德(Ketan Varhade)

活跃用户


已加入:2009年6月29日
职位:197
地点:孟买

发布发表:2010年2月11日,星期四,下午12:49
引用回复

检查与诊断,并比较结果?
回到顶部
查看用户资料 发送私信
Shaktiprasad

新的用户


已加入:2006年8月20日
帖子:34
地点:钦奈

发布发表:2010年2月11日,星期四2:00 pm
引用回复

嗨,基坦,

感谢您的答复。请让我知道比较对角线结果的确切含义吗?
回到顶部
查看用户资料 发送私信
凯坦·瓦哈德(Ketan Varhade)

活跃用户


已加入:2009年6月29日
职位:197
地点:孟买

发布发表:2010年2月11日,星期四2:03 pm
引用回复

我要使用诊断法,然后移动所需的变量并检查其显示的值。获取诊断用于获取已获取的行数。您是否在多行集中使用此功能?
回到顶部
查看用户资料 发送私信
Shaktiprasad

新的用户


已加入:2006年8月20日
帖子:34
地点:钦奈

发布发表:2010年2月11日,星期四2:17 pm
引用回复

是的,我正在将其用于多行读取。实际上,我的游标只是一个简单的select语句,如果获取的行数大于某个数,则存在一个约束,否则不填充记录,否则,如果行的数量小于或等于该数,则仅填充记录。

所以我只想检查提取的实际行数。
成功执行Open或Fetch语句后,SQLERRD(3)应该给出实际的行数!
回到顶部
查看用户资料 发送私信
Shaktiprasad

新的用户


已加入:2006年8月20日
帖子:34
地点:钦奈

发布发表:2010年2月11日,星期四2:23 pm
引用回复

凯坦·瓦哈德(Ketan Varhade)写道:
我要使用诊断法,然后移动所需的变量并检查其显示的值。获取诊断用于获取已获取的行数。您是否在多行集中使用此功能?


再次请plz让我知道要使用诊断的语法。这也可以解决我的问题,su表示将给出获取的行数。
回到顶部
查看用户资料 发送私信
凯坦·瓦哈德(Ketan Varhade)

活跃用户


已加入:2009年6月29日
职位:197
地点:孟买

发布发表:2010年2月11日,星期四2:33 pm
引用回复

码:
GET DIAGNOSTICS rcount = ROW_COUNT

使用此rcount将具有行数
回到顶部
查看用户资料 发送私信
Shaktiprasad

新的用户


已加入:2006年8月20日
帖子:34
地点:钦奈

发布发表:2010年2月11日,星期四2:49 pm
引用回复

凯坦·瓦哈德(Ketan Varhade)写道:
码:
GET DIAGNOSTICS rcount = ROW_COUNT

使用此rcount将具有行数


所以我可以这样使用它:
执行SQL
GET DIAGNOSTICS:rcount = ROW_COUNT
最终执行者

其中rcount是主机变量。
回到顶部
查看用户资料 发送私信
苏珊斯·鲍比

高级会员


已加入:2008年7月29日
帖子:1018
地点:印度

发布发表:2010年2月11日,星期四,下午7:02
引用回复

Shaktiprasad,

引用:
打开并获取一个游标后。

如果您使用
码:
显示'SQLERRD(3) = 'SQLERRD(3) 

打开游标后,您将获得0。因为,仅在执行FETCH语句后才提取行。

您能告诉我们您的代码吗?那将容易得多。

苏珊斯
回到顶部
查看用户资料 发送私信
巴拉特·巴特

活跃用户


已加入:2008年3月20日
帖子:283
地点:钦奈

发布发表:2010年2月11日,星期四,晚上8:20
引用回复

引用:
尽管光标返回的行数是有限的,但是显示在两个地方都显示0条记录


您如何确定查询是returnig行?您是否在spufi / qmf中执行查询?我建议您在成功获取后显示SQLERRD(3)。如果仍然显示0,我相信SQL不会获取任何行。
回到顶部
查看用户资料 发送私信
Shaktiprasad

新的用户


已加入:2006年8月20日
帖子:34
地点:钦奈

发布发表:2010年2月11日,星期四10:28 pm
引用回复

巴拉特·巴特(Bharath Bhat)写道:
引用:
尽管光标返回的行数是有限的,但是显示在两个地方都显示0条记录


您如何确定查询是returnig行?您是否在spufi / qmf中执行查询?我建议您在成功获取后显示SQLERRD(3)。如果仍然显示0,我相信SQL不会获取任何行。


是的,我看到了记录在阀芯中的记录。实际上,我在循环中一个接一个地获取记录,并在成功获取后显示sqlerrd(3)。
回到顶部
查看用户资料 发送私信
迪克·谢勒

主持人荣誉


已加入:2006年11月23日
帖子:19245
位置:矩阵内部

发布发表:2010年2月11日,星期四10:42 pm
引用回复

您好,

看这里(在页面下方1/3):
publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/handheld/Connected/BOOKS/dsnsqj10/D.1

除非我读错了什么,否则您的结果是正确的。 。 。
回到顶部
查看用户资料 发送私信
Shaktiprasad

新的用户


已加入:2006年8月20日
帖子:34
地点:钦奈

发布发表:2010年2月11日,星期四,11:06 pm
引用回复

迪克·谢勒(Dick scherrer)写道:
您好,

看这里(在页面下方1/3):
publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/handheld/Connected/BOOKS/dsnsqj10/D.1

除非我读错了什么,否则您的结果是正确的。 。 。


谢谢。
所以sqlerrd(3)给出仅在获取行集的情况下要获取的行数。我可以使用其他任何变量吗? sqlerrd(1)或sqlerrd(2)。什么是敏感静态游标?
或者我必须使用主机变量来获取计数。
回到顶部
查看用户资料 发送私信
迪克·谢勒

主持人荣誉


已加入:2006年11月23日
帖子:19245
位置:矩阵内部

发布发表:2010年2月11日,星期四,11:13 pm
引用回复

您好,

如果您的代码一次读取一行,则只需在读取每一行后将1加到某个计数器,然后当没有更多行时,您便可以处理行数。
回到顶部
查看用户资料 发送私信
恩里科·索里切蒂

高级主持人


已加入:2007年3月14日
帖子:10715
所在地:意大利

发布发表:2010年2月11日,星期四,晚上11:15
引用回复

引用:
实际上,我在循环中一张一张地获取记录
您可能需要知道多行读取的行数,以便正确处理接收数组;
但是,为什么要获取单行读取的行数?
回到顶部
查看用户资料 发送私信
Shaktiprasad

新的用户


已加入:2006年8月20日
帖子:34
地点:钦奈

发布发表:2010年2月11日,星期四,晚上11:20
引用回复

恩里科·索里切蒂写道:
引用:
实际上,我在循环中一张一张地获取记录
您可能需要知道多行读取的行数,以便正确处理接收数组;
但是,为什么要获取单行读取的行数?


您好,请从头开始阅读讨论内容。我已经提到过,只有在count匹配某个数字时才需要进行处理。在每次提取后我都不会检查该计数,而是在循环结束后检查是否成功执行了查询。
回到顶部
查看用户资料 发送私信
迪克·谢勒

主持人荣誉


已加入:2006年11月23日
帖子:19245
位置:矩阵内部

发布发表:2010年2月11日,星期四,晚上11:23
引用回复

您好,

引用:
我已经提到过,仅当计数匹配某个数字时,我才需要处理。
然后,您可以考虑对行进行计数 之前 逐一阅读。 。 。
回到顶部
查看用户资料 发送私信
Shaktiprasad

新的用户


已加入:2006年8月20日
帖子:34
地点:钦奈

发布发表:2010年2月11日,星期四,晚上11:29
引用回复

迪克·谢勒(Dick scherrer)写道:
您好,

引用:
我已经提到过,仅当计数匹配某个数字时,我才需要处理。
然后,您可以考虑对行进行计数 之前 逐一阅读。 。 。


我可以使用count(*),但是存在一些性能问题,因此计划执行对匹配计数的获取,然后将在循环外再次获取。如果外部循环给出了一些结果,那么我将进行相应的处理(与朋友讨论)。感谢您的时间。
回到顶部
查看用户资料 发送私信
迪克·谢勒

主持人荣誉


已加入:2006年11月23日
帖子:19245
位置:矩阵内部

发布发表:2010年2月11日,星期四,11:38 pm
引用回复

不用客气-祝你好运 icon_smile.gif

d
回到顶部
查看用户资料 发送私信
恩里科·索里切蒂

高级主持人


已加入:2007年3月14日
帖子:10715
所在地:意大利

发布发表:2010年2月11日,星期四,晚上11:44
引用回复

引用:
您好,请从头开始阅读讨论内容。我已经提到过,只有在count匹配某个数字时才需要进行处理。在每次提取后我都不会检查该计数,而是在循环结束后检查是否成功执行了查询。


你为什么抱怨?重读我的帖子,看起来您在理解它时遇到了麻烦...

使用多行获取/检索吗?
是==>sqlerrd(3)包含返回的行数

否== >您必须使用单行读取/检索
sqlerrd(3)未设置, 句号
并且您将不得不自己计算行数

为了一些优化,
在target + 1提取之后,您可能会退出提取循环

有多少行构成目标?
如果数字是<small>将数据存储到数组中肯定会带来更好的结果

引用:
sqlerrd(3)行为异常

为什么责怪别人对文档的误解?
回到顶部
查看用户资料 发送私信
查看上一个主题 :: :: 查看下一个主题  
发表新话题   回复主题 查看书签
所有时间均为格林尼治标准时间+ 6小时
论坛索引 -> DB2

 


类似主题
话题 论坛 回覆
没有新帖 SORT(DFSORT)表现异常 DFSORT / ICETOOL 8
没有新帖 DSNT408I SQLCODE = -443,带有-818 S ... DB2 4
没有新帖 ISPF面板可滚动字段指示器... TSO / ISPF 14
没有新帖 JCL的行为与众不同... JCL和VSAM 3
没有新帖 有点奇怪! JCL和VSAM 2
搜索我们的论坛:


回到顶部