内容发布更新时间 : 2024/12/26 1:57:32星期一 下面是文章的全部内容请认真阅读。
使用步骤:
1.创建事务对象,默认为SQLCA,可以自己定义一个全局事务变量; 2.指定该事务对象的属性,连接到数据库;(一般在Application 的Open事件中处理), 如: // RollCall 的连接定义
SQLCA.DBMS = \ SQLCA.AutoCommit = False
SQLCA.DBParm = \ Connect using sqlca;
if sqlca.sqlcode <> 0 then // 显示错误,处理错误 end if
3.编辑某窗口,一般在这个窗口的Open事件中对数据窗控件设置事务信息,如Windows的Open事件中写入:
dw_1.settransobject(sqlca)
即表示将dw_1的数据操作和sqlca这个事务对象联系起来。 4.检索数据:dw_1.retrieve(参数1,参数2,??.);
5.对检索出来的数据(放在缓冲区中)进行编辑,通过直接编辑,Setitem,dw_1.object对象引用等操作,编辑数据;
6.编辑完成,将该数据窗中的修改过的数据保存,是否修改由PB自己判断,可以通过dw_1.GetItemStatus函数得到每行、每列的修改状态用来作特殊的判断。 一般的保存脚本如下:
if dw_1.update(true,false) = 1 then commit ; //提交事务 //完整的语法应当是 Commit using sqlca; //对于默认事务sqlca,可以省略using sqlca子句。 dw_1.resetupdate() // 复位修改状态为从未修改过 else RollBack; // 回滚事务,并提示错误信息 Messagebox(‘错误’,‘保存数据时发生错误:~r~r’+& sqlca.sqlerrtext,Stopsign!) end if
7.当不需要再使用该事务时,记得断开(一般在Application的Close事件中处理): Disconnect Using Sqlca;
对数据窗操作的常用脚本 1.插入行 dw_1.insertrow(2) //在第二行前插入一条新行 2.追加行 dw_1.insertrow(0) //在尾部追加一行 3.删除行 dw_1.Deleterow(2) //删除第二行 4.过滤 dw_1.setfilter(‘ emp_name like “刘%”’) //凡是雇员姓刘的
dw_1.filter() 5.排需 dw_1.setsort(‘emp_name a,emp_address d’) //按姓名正序,地址倒序排需 dw_1.sort() 6.查找 ll_found_Row = dw_1.find(‘emp_name like “刘%” ’, 1,dw_1.rowcount()) // 在 1 – dw_1.rowcount() 范围内查找第一个满足条件的记录 7.赋值 dw_1.setitem(2,’emp_name’,’测试‘) //设置第二行中emp_name的值为 ’测试‘ 8.取值 ls_emp_name = dw_1.GetItemSTring(2,’emp_name’) //取出第二行的emp_name值到ls_emp_name变量 9.走动记录 滚动到指定行:dw_1.scrolltorow(20) //滚动到第20行,一般和find一起操作 相对滚动行:dw_1.scrollpriorrow(),scrollnextrow(),scrollNexPage(),scrollPriorPage() 10.更新。Dw_1.update(true,false)