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

pb的几个基础而且至今还迷糊的有关问题

2012-03-24 
pb的几个基础而且至今还迷糊的问题一。事务1)数据窗口在保存和SQL语句一起执行做为一个事务功能:学生表中添

pb的几个基础而且至今还迷糊的问题
一。事务
1)数据窗口在保存和SQL语句一起执行做为一个事务
功能:学生表中添加学生的姓名,同时向班级表也插入一条记录,两个数据库操作做为一个事务
sqlca.autocommit = false
dw_1.object.name[i] = ‘王三’
String ls_sql
ls_sql = "insert into student_no_one(name) values('" + "王三" +"'"
if dw_1.update() = 1 then
  Execute Immediate :ls_sql Using sqlca;
  if sqlca.sqlcode() <> - 1 then
  commit;
  end if
else
  rollback;
end if
结果是如果sqlca.sqlcode() <> - 1 ,dw_1.update同样成功,数据已经写到了数据库
二。Filter缓冲区的问题
功能:在一个数据窗口中利用多选选取数据,然后把这些数据移到另一个数据窗口中,进行存储
s_xz是多选框,选是为1,不选中是0
dw_1.settrans(sqlca)
dw_1.retrieve()
ls_syntax = dw_1.Object.datawindow.Syntax
dw_temp.create(ls_syntax)
dw_temp.settrans(sqlca)
dw_temp.reset()
dw_1.setfilter("s_xz = 0")
dw_1.filter()
dw_1.rowsmove(1, 1.FilteredCount(), Filter!, dw_temp, 1, primary!)
错误结果就是有的时候dw_temp内数据是选中的,有的时候dw_1中没有选中的也进入了dw_temp中。这把我晕的。
这个帖子88分,祝大家新年发发


[解决办法]
sqlca.autocommit = false 
dw_1.object.name[i] = ‘王三’ 
String ls_sql 
ls_sql = "insert into student_no_one(name) values('" + "王三" +"'" 
if dw_1.update() = 1 then 
Execute Immediate :ls_sql Using sqlca; 
if sqlca.sqlcode() =0 then 
commit; 
else 
rollback;
end if 
else 
rollback; 
end if 

[解决办法]
问题一:
sqlca.autocommit = false 
dw_1.object.name[i] = ‘王三’ 
String ls_sql 
ls_sql = "insert into student_no_one(name) values('" + "王三" +"'" 
if dw_1.update() = 1 then 
Execute Immediate :ls_sql Using sqlca; 
if sqlca.sqlcode() <> - 1 then 
commit; 
else
rollback ; //多加这一句就ok了
end if 
else 
rollback; 
end if 

热点排行
Bad Request.