收录日期:2019/03/21 00:19:47 时间:2016/05/18 06:54:52 标签:DataWindow
datawindow控件与datastore的关系是什么?
简单的说,datastore是一个不可视的datawindow控件
datstore就好比看不见的datawindow,你可以对其向操作datawindow一样操作数据,如打印等等
datawindow和datastore是区别:
datawindow是可视的
datastore是不可视的用法相当于datawindow
PowerBuilder 使用数据存储代替游标 
  

Datastore 是 PwerBuilder中不可视的数据窗口控制。与数据窗口相比除了视觉以外其他各个方面都极其相似。

由于datastore具有对数据的交互操作,所以用它来代替在程序中经常使用的游标Cursors. 使用datastore检索数据比游标的速度快,并对数据的分组变得容易,提高比较高级的过滤功能,在程序中不需要变量也可以访问数据,并且在PB中使编码变得相对简单。

使用datastore对数据也有缺点:
使用datastore时候必须有检索对应数据的数据窗口对象;

你使用后必须及时的释放datastore占用的内存空间,一面产生内存空洞;

下面举个简单的例子说明如何人在程序中使用游标和datastore进行查询数据,它们具有一曲同工之效:

1,下面是采用游标的方式取得可户信息的事例程序;

String ls_cust_code,ls_customer_name,ls_address

DECLARE lc_my_cursor CURSOR FOR 

SELECT customers.cust_id,customers.cust_name,customers.cust_address 

FROM customers ORDER BY cust_code;

OPEN lc_my_cursor;

FETCH lc_my_cursor INTO :ls_cust_code,:ls_customer_name,ls_address;

DO WHILE SQLCA.SQLCODE = 0 

FETCH lc_my_cursor INTO :ls_cust_code,:ls_customer_name,:ls_address;

LOOP

CLOSE lc_my_cursor

2,采用Datastore实现上面同样的功能:

String ls_cust_code,ls_customer_name,ls_address 

long ll_row,ll_row_count 

datastore lds_dstastore 

lds_datastore = CREATE datastore 

lds_datastore.dataobject = "d_customers" 

lds_datastore.settransobject(sqlca) 

lds_datastore.retrieve()

ll_row_count = lds_datastore.rowcount()

FOR ll_row = 1 to ll_row_count 

ls_cust_code = lds_datastore.getitemstring(ll_row,"cust_id")

ls_cust_code = lds_datastore.getitemstring(ll_row,"cust_name") 

ls_cust_code = lds_datastore.getitemstring(ll_row,"cust_address") 

NEXT 

DESTROY lds_datastore 

说明:上面的数据窗口对象包括数据库中Customers表中的cust_id,cust_name,cust_address 

列。以上是游标和datastore的转换,请广大网友借鉴。 
 
如何在DATAWINDOW控件中不关联DATAWINDOW对象而显示数据,是不是用DATASTORE?

一个时间相加的问题! 请问各位,windows2000,和windows98的关机命令是什么,我想编程实现动态关机 各位前辈,有谁知道“FUNCky”是什么东东?怎样才能得到?为什么我的计算机中没有? 不能使用sql sever身份验证 浙江的声询台IC卡能不能查,这边201打不了 为什么我的程序不能运行? VB和VC共同编程的问题,VB调用VC的DLL里面的数据结构该如何? 一个启动weblogic6.1的问题? interbase数据库的相关资料谁有啊,帮帮忙 急!急!急! 在线等待:网站打包 关于vc调试中出现的异常~~ INTERBASE新手的苦恼! 请问验证整数的正则表达式怎样写??有没有网上可以查的资源,是做参考的,找了半天没找见 我原来在ACCESS数据库存放的图片是BMP,如何把它转换为JPG? 关于DbGrid控件的问题。 在类中定义变量时,其位置一定要在过程或函数之前么? 问一个问题,可能比较弱智,大家多多帮忙了 怎么恢复Ben_bk.dat文件到SQL服务器中? 带参数和需要返回值的存储过程如何写? 帮帮忙,谁有interbase 数据库的使用方法 谁有加密字符串的代码?? 如何让控件边界透明阿??? 怎样将一台WIN2K服务器配置成维持标准时间的机器(NTP服务器) 请问。我想能不能让一个表单form变成不可见,然后利用自动提交定向到别的网页 关于.NET中ListView的用发.在线等待... 能否在网页中引入word对象?高手请进! 关于主键外键的约束问题 我在线等 哪位大哥可以告诉我? 请问如何让一个FlexGrid控件中同时使有的列直接输入数据,有的列可用Combo控件选择数据?