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看看