各位兄弟帮忙,SetSQLSelect(...)的问题,总是返回错误,帮帮我

hardboy_du 2003-08-30 08:49:29
String old_sql,new_sql

old_sql = DataWindow.GetSQLSelect()
new_sql = old_sql + "WHERE CT_ID = '"+ls_id+"'"
DataWindow.SetSQLSelect(new_sql)
DataWindow.SetTransObject(SQLCA)
DataWindow.Retrieve()

我用的是Oracle + PB8.0

总是返回"Select error : ORA-24333 : 零迭代计数"
...全文
1155 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
netspies 2003-09-01
  • 打赏
  • 举报
回复
up

请大家看看下面问题

http://expert.csdn.net/Expert/topic/2198/2198945.xml?temp=.6973535
liaolwj 2003-08-31
  • 打赏
  • 举报
回复
除了 klbt(快乐白兔) 说的,你还有注意一下,如果要使用setsqlselect()函数,你的数据窗口中的数据源中的表和列不是用双"号了吗,你将它去掉就可以了。
tulip2108 2003-08-31
  • 打赏
  • 举报
回复
ORA-24333: zero iteration count
Cause: An iteration count of zero was specified for a non-select statement.
Action: Specify the number of times this statement must be executed.
很奇怪的错误,old_sql贴出来看看,也许知道是什么地方问题。
jdsnhan 2003-08-31
  • 打赏
  • 举报
回复
分别读一下old_sql和new_sql看看
也可以把new_sql在数据库画板中或sql/plus中运行看看结果。
fulongbiao 2003-08-31
  • 打赏
  • 举报
回复
你的old_sql不能有where语句,Group By语句、Sort语句。
否则语法错误。
klbt 2003-08-30
  • 打赏
  • 举报
回复
你的old_sql不能有where语句,Group By语句、Sort语句。
否则语法错误。
msf 2003-08-30
  • 打赏
  • 举报
回复
你可以把你的SQL语句改一下.单步调试.
warmnest 2003-08-30
  • 打赏
  • 举报
回复
最好看一下new_sql 是什么东东。。。用个messagebox显示出来。。

我经常遇到这样的问题,就是你那个数据窗口DataWindow.GetSQLSelect()的那个数据窗口对象,你是用过用鼠标选中表,然后用select all 来创建的,那么里面的语法可不是sql,好象是什么TABLE xxxx
Clomn1 = xxxxx
Clomn2 = xxxxx
.....
;

这样的东西,建议你把数据窗口用sql 重新做一下。。。或是把语法改成select 指定的字段,
然后检查一下。。。
myhunan 2003-08-30
  • 打赏
  • 举报
回复
将DataWindow.SetTransObject(SQLCA)置于DataWindow.SetSQLSelect(new_sql)前面
hzhxxx 2003-08-30
  • 打赏
  • 举报
回复
单步调试,把你的 new_sql 拿到数据库画板中看看是不是错误了

数据窗口源码介绍 (举例见d_dbit_example.srd,测试数据库为PB自带的EAS Demo DB V120) 1.第一行:release 12; 数据窗口所属PB的版本号,如果想把高版本的datawindow导入低版本的PB中要修改此数字; 2.datawindow()行 通常用修改processing属性,可以把你的数据窗口由grid变成freeform或其它类型 例:freeform:0 grid:1 3.header()行 可以整行复制粘贴,并命名为header[1],header[2],这样可以让数据窗口有多个header 4.table()行 这里全是定义的数据属性,是setitem,update,object.data等方法访问的根源 如果存在table()里的column,数据窗口里可以不存在任何对象,仍然可以访问数据窗口的数据 如果想创建一个空的数据窗口,可以只定义: release 12; table() 5.table(column行) 是第几个column,它的ID就是多少,其中也定义了是否可以update时和更新到数据表的字段名 6.table(retrieve行) 检索数据时使用的SQL语句,可以通过setsqlselect或modify("table.sqlselect")方法去动态修改 修改后要重新定义数据窗口的更新属性 7.column()行 id即是对应table(column行)里的行次,名称(name)可以随便命名,也可以没有,则默认为table(column行)里的name 8.compute()行 计算列,可以通过表达式计算显示特定值(具体函数可以见共享里的画笔函数). 9.text()行 有时可以代替计算列; 通过定义text的表达式,可以实现一列中显示两个字段值,注意结果必须要转换成string类型(而column和compute则不行); 10.htmltable()行 按照格式导出(saveas)html文件,为了保证格式的完整,数据窗口的单位最好设置成pixels GenerateCSS='1' //保持格式及颜色 Border='0' //不要table边框 CellSpacing='0' //单元格无间距(此项在界面上经常设置不上) 注: (1)Grid生成标签,Freeform生成
+ 标签; (2)生成htmltable时,不知为何会在CSS中的开始自动加一个分号";",导致excel等浏览器打开不能正常显示格式; (3)band为foreground或background的对象导不出来,可以动态修改后再导出. 11.export.xml()行 定义导出xml文件的格式,并为模板保存名称 使用时一定要设置usetemplate值 12.import.xml()行 定义导入xml文件的格式,并为模板保存名称 使用时一定要设置usetemplate值 13.表达式介绍 略 14.其它也略
本系统的设计重点 主要介绍了在PowerBuilder中全局变量、实例变量、共享变量和局部变量的用法。另外,还介绍了在多数据窗口中进行数据检索的三种方法: 其中第一种方法是通过PB的函数SetSQLSelect来设置数据窗的语法,这种方法一般都是在数据窗连接数据库后,通过函数GetSQLSelect来得到数据窗的原始语法,然后通过用户输入的条件生成WHERE条件,再将原始语法和WHERE条件结合起来生成一条SQL语句,最后通过SetSQLSelect函数将SQL语句赋值给数据窗,让数据窗重新检索;第二种方法是通过Filter函数来设置数据窗,这种方法是通过用户输入的条件生成过滤语句,然后利用SetFilter函数将过滤语句赋值给数据窗,最后利用Filter函数来过滤数据窗;第三种方法是建立数据窗对象时在数据窗对象上建立检索参数,然后在程序中通过附带参数的Retrieve函数来检索数据。比较这三种方法,第一种最灵活,最易于使用,但是必须在数据窗连接到数据库后得到数据窗的原始语法;第二种使用起来也比较灵活,但是只能对数据窗中的一个字段进行过滤检索;第三种方法比较简单,使用起来不需要太多的技巧,但是不太灵活,在改变检索条件的时候需要修改数据窗。 系统要完成的任务 ˉ 院系专业设置。 ˉ 院系专业查询。 ˉ 学生档案录入。 ˉ 学生档案查询。 ˉ 课程设置。 ˉ 选课管理。 ˉ 成绩录入。 ˉ 按学生查询成绩。 ˉ 按课程查询成绩。 ˉ 系统管理。

609

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder DataWindow
社区管理员
  • DataWindow社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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