首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > PB >

PB 语句不执行,该如何解决

2012-03-19 
PB 语句不执行在PB中,将一段语句赋值给变量sql后,运行的时候点击查询却没有执行,请问是什么问题?应用程序

PB 语句不执行
在PB中,将一段语句赋值给变量sql后,运行的时候点击查询却没有执行,请问是什么问题?

应用程序的Open事件中输入:
// Profile 333
SQLCA.DBMS = "O73 ORACLE 7.3"
SQLCA.LogPass = "1234"
SQLCA.ServerName = "@HHY"
SQLCA.LogId = "1234"
SQLCA.AutoCommit = False
SQLCA.DBParm = "PBCatalogOwner='1234'"
  
connect using sqlca;
open(w_main)

窗口的open 事件中输入:

dw_1.settransobject(sqlca)
dw_1.retrieve()

查询按钮中输入:
string sql

sql="select ww.xmzw,ww.ksmc,qq.ysxm,ww.sl,ww.je from ysk qq"

dw_1.settransobject(sqlca)
dw_1.setsqlselect(sql)
dw_1.retrieve()

sql语句我省略一些,但是是正确的,在其地方可运行的。

[解决办法]
connect using sqlca; 
连接要判断下!


dw_1.setsqlselect(sql) 
要看下它的返回值,是否正常!
用它话DW中列必须和SQL是一样的!


[解决办法]
dw_1.setsqlselect(sql) 的返回值应该是-1的,#1楼有提到的,使用setsqlselect的时候新的语法中查询的字段与原数据窗口对象要一致才可以成功;
[解决办法]
if sqlca.sqlcode <> 0 then 
messagebox('出错',sqlca.sqlerrtext)
end if
[解决办法]
dw_1.settransobject(sqlca) 
dw_1.setsqlselect(sql) 
如果列是对应 的只需要将这两句上下换一下位置就可以了,设置完SQL语句后需要重设事务对象应该就可以了!
dw_1.setsqlselect(sql) 
dw_1.settransobject(sqlca)
[解决办法]
dw_1.dataobject = "某个数据窗口"
connect using sqlca; 
dw_1.settransobject(sqlca)
dw_1.retrieve() 
这三条都判断一下返回值,看看错误在哪句,输出sqlca.sqlerrtext看看

热点排行