关于PB自定义事务的问题 100分求解
在PB使用中,发现个问题。sqlca大家都知道,是PB自带的全局事务对象。但,如果使用自定义事务对象,不用sqlca,正常的使用DW控件去对数据库操作,是没问题。但直接写sql,就出问题了。代码段1的例:
SQLCA.DBMS = "O90 Oracle9i (9.0.1)"
SQLCA.LogPass = "ccmis"
SQLCA.ServerName = "orcl"
SQLCA.LogId = "ccmis"
SQLCA.AutoCommit = False
SQLCA.DBParm = "PBCatalogOwner='ccmis'"
connect using sqlca;
select s_ad282.nextval into :s_no from dual;
在这里,s_no是获取记录序列的值的。而采用自定义的事务对象
transaction gr2
gr2=create transaction
gr2.servername= "orcl"
gr2.logid="ccmis"
gr2.logpass= "ccmis"
gr2.dbparm= "PBCatalogOwner='ccmis'"
gr2.dbms= "O90 Oracle9i (9.0.1)"
gr2.autocommit=false
connect using gr2;
select s_ad282.nextval into :s_no from dual;
在这,s_no是空值。这是为什么呢???
前提,不要把这两个事务写在一个代码段。connect using sqlca与connect using gr2如果写在一起,是都能查出来结果的。因为connect using sqlca在发挥做用。 使用注释的方法,就看出来了。代码段1和自定义的代码段,要试哪个,就注释另外一组。
另外,就是使用自定义的事务对象,虽然不能执行PB中的嵌套sql语句,但却可以通过dw正常完成增删改查。
找高手求解