注册 登录
编程论坛 PowerBuilder

预览通用查询时弹出的错误!请教!

yuexiayiyu 发布于 2007-01-21 12:32, 1789 次点击

这是在预览通用通用查询模块时出现的错误!望高手帮忙指教下!急!!在此谢过了!

23 回复
#2
yuexiayiyu2007-01-21 12:39
提示错误:Datawindow error
Database transaction information not available. call settrans or settransobject function 请问这是那里的原过?
#3
notbig2007-01-21 21:01
忘了 dw.settransobject(sqlca)
#4
yuexiayiyu2007-01-21 21:22
String ls_TableName

ls_TableName = this.GetItemString(CurrentRow,'pbt_tnam')
ls_TableName = Lower(Trim(ls_TableName))

choose case ls_TableName
case 'mpgla'
dw_result.DataObject = 'dw_mp_query' //和名片查询数据窗口相关联
case 'users'
dw_result.DataObject = 'dw_users' //和用户数据窗口相关联
end choose

dw_result.SetTransObject(SQLCA)

is_sql = dw_result.GetSqlSelect() //将查询结果数据窗口最初的SQL语句保存在窗口实例变量中。

dw_filter.Reset() //清除原来的查询条件
dw_filter.InsertRow(0) //在查询条件数据窗口中插入一条新数据。
wf_SetField(dw_result) //根据dw_result关联的数据窗口对象设置查询 条件数据窗口中的zd



这条语句我写进去了啊?我找了好久也找不出是那里的缘过。你能说清楚点不!好让我理解下。
#5
notbig2007-01-22 08:35
DW_FILTER这个DW做了SETTRANSOBJECT(SQLCA)?
#6
yuexiayiyu2007-01-22 10:19
DW_FILTER 下也要写吗?这个DW中一条语句也没有写。它不是相关连的吗? 要是要写的话,该怎么写呢。麻烦!谢谢了!
#7
notbig2007-01-22 12:21
DW_FILTER.SETTRANSOBJECT(SQLCA)
#8
yuexiayiyu2007-01-22 14:36

在它的下面加条这样的就可以了?没反应!还是和原来的错误是一样的!

#9
notbig2007-01-22 15:39
你在哪加的?
#10
yuexiayiyu2007-01-22 16:18

String ls_TableName

ls_TableName = this.GetItemString(CurrentRow,'pbt_tnam')
ls_TableName = Lower(Trim(ls_TableName))

choose case ls_TableName
case 'mpgla'
dw_result.DataObject = 'dw_mp_query' //和名片查询数据窗口相关联
case 'users'
dw_result.DataObject = 'dw_users' //和用户数据窗口相关联
end choose

dw_result.SetTransObject(SQLCA)

is_sql = dw_result.GetSqlSelect() //将查询结果数据窗口最初的SQL语句保存在窗口实例变量中。

dw_filter.Reset() //清除原来的查询条件
dw_filter.InsertRow(0) //在查询条件数据窗口中插入一条新数据。
wf_SetField(dw_result) //根据dw_result关联的数据窗口对象设置查询 条件数据窗口中的zd


这些语句我是加在了。dw_systemtable表下的。 dw_filter表和dw_result表下是没有语句的。他们俩个表是通过查询按钮来起作用的!至于你说的要加条语句你说应该加在哪个下面呢。

#11
notbig2007-01-22 21:46
dw_result.SetTransObject(SQLCA)
DW_FILTER.SETTRANSOBJECT(SQLCA)
#12
yuexiayiyu2007-01-23 09:12

大哥!我还是个新手呢,麻烦你说明白点行吗?就加一条这样的语句就可以了?我都试了!可还是不能解决上面弹出的那个错误的问题!

#13
notbig2007-01-23 14:10
那你跟踪程序,看到哪一步才出错。
#14
notbig2007-01-23 14:10
也许根本就不是这段代码就出错了
#15
yuexiayiyu2007-01-23 14:39

其他的模块都可以用的,就是到了这里就出现这个错误了。!行 。我在仔细好好的看看。谢谢你了哦!

#16
notbig2007-01-23 17:39
用单步跟踪法,查看各个变量的值,及在哪一句出现的问题。
#17
yuexiayiyu2007-01-23 18:41

String ls_TableName

ls_TableName = this.GetItemString(CurrentRow,'pbt_tnam')
ls_TableName = Lower(Trim(ls_TableName))

choose case ls_TableName
case 'mpgla'
dw_result.DataObject = 'dw_mp_query' //和名片查询数据窗口相关联
case 'users'
dw_result.DataObject = 'dw_users' //和用户数据窗口相关联
end choose

dw_result.SetTransObject(SQLCA)

is_sql = dw_result.GetSqlSelect() //将查询结果数据窗口最初的SQL语句保存在窗口实例变量中。

dw_filter.Reset() //清除原来的查询条件
dw_filter.InsertRow(0) //在查询条件数据窗口中插入一条新数据。
wf_SetField(dw_result) //根据dw_result关联的数据窗口对象设置查询 条件数据窗口中的zd


找是找到了。(红色的那条)可还是不知道怎么解决!郁闷!
提示: warning C0014 :undefined variable CurrentRow

#18
notbig2007-01-24 08:42
没有定义CURRENTROW变量
你这段代码是在哪个控件的哪个事件上?
#19
yuexiayiyu2007-01-24 09:10

是在数据窗口dw_systemtable 事件itemchanged上! 对这些事件有些我不怎么了解。

#20
notbig2007-01-24 10:42
ITEMCHANGED事件上,那你把那个变量换成ROW吧
#21
yuexiayiyu2007-01-24 16:50
可以了。谢谢你了哦!但是我还是不怎么理解这些控件的事件呢。你那有这些事件的说明吗?我好想看看!   辛苦了→
#22
notbig2007-01-24 17:08
可以看帮助,里面讲得很详细的,只是E文,不过没有什么难的,用金山词霸就可以。
#23
notbig2007-01-24 17:10

通过事件的名称就基本上可以知道事件在什么情况下会触发,你还要了解事件中的各参数意义,在脚本中尽量使用这些参数。

#24
yuexiayiyu2007-01-24 18:00

感谢指导!

1