PowerBuilder核心对象数据库窗口对象

   在准备自考毕业论文的过程中,用PB做了一个小系统。PowerBuilder是一种基于C/S结构的面向对象的可视化工具,主要是安装在客户端使用,作为数据库应用系统的开发工具而存在。这也就说明了PowerBuilder更是一种数据库开发工具。


    数据窗口是PowerBuilder功能最强,最具特色的一个对象。在应用程序中,数据窗口主要由数据窗口控件和数据窗口对象两部分组成。其实数据窗口控件就相当于是一个容器,将数据窗口对象定义的数据源、数据的显示风格显示给用户。自考程序我开发的是一个药品销售管理系统。在该系统中更多的是采用了数据窗口对象。其功能无外乎都是对一些数据的录入、查询、删除和修改。下面介绍一下这几个操作:


1.建立应用程序与数据库的连接

   虽然建立了数据窗口对象和数据库控件的关联,但是在应用程序中,数据窗口还是不能工作,因为在应用程序中还没有建立和数据库连接。应用程序和数据库的连接是通过事务对象来完成的。事务对象就相当于是应用程序和数据库之间通信的一个桥梁。建立数据库连接语法:

// Profile Medicine
SQLCA.DBMS = "ODBC"
SQLCA.AutoCommit = False
SQLCA.DBParm = "ConnectString='DSN='" 

//打开数据源进行连接
connect using sqlca;

//判断数据源是否连接
if sqlca.sqlcode<>0 then     //连接失败给予提示
	messagebox("连接数据库失败",sqlca.sqlerrtext)
	return     
end if

2.检索数据

   为数据窗口控件分配事务对象并检索数据,一般在数据窗口的open事件完成此功能。

//数据窗口dw设置连接事务sqlca
dw_1.settransobject(sqlca)
//数据窗口控件从数据库中提取数据
dw_1.retrieve() //此处可提供检索参数,如给定一个时间范围,则可按时间进行检索

3.添加数据

    InsertRow()函数在数据窗口主缓冲区的指定位置插入一行,例如:

//getrow()函数可以得到当前的行号
 	row=dw_1.getrow()
	 row=dw_1.insertrow()


4.删除数据

   DeleteRow()函数在数据窗口主缓冲区内的指定位置删除一行,例如:

Integer is_delete
	is_delete=messagebox("提示","确定要删除当前行吗?")
	if is_delete=1 then 
		dw_1.deleterow(0)
	end if 

5.更新数据

    Updata()函数保存在数据窗口中对数据的修改。当用户在数据窗口上插入、删除行,或直接修改某列的数据时,这些都是在数据窗口的缓冲区上进行,并没有在数据库中产生世家的变化,Updata()函数使所做的修改在数据库中产生变化,执行成功返回1,否则返回-1.例如:

Integer is_update
	is_update=messagebox("警告","是否要更新数据库的内容?")
	if is_update=1 then 
		if dw_1.update()=1 then
			//如果保存成功提交事务
			commit;
		else
			//如果保存失败滚回事务
			messagebox("错误","数据内容更新错误")
			rollback;
		end if 
	end if 


    以上是对PB对数据窗口控件的一些简单操作。总的来说,PowerBuilder数据窗口对象是专门为了访问后台的数据库服务的。数据窗口控件就是一个封装好的控件,实现了与数据库进行绑定,也就是说我们直接对数据控件进行增删改查就可以了,而不用编写后台的SQL语句。


你可能感兴趣的:(【学习与思考】)