PB虛擬datastore用法
### PB虚拟DataStore用法详解 #### 一、概述 PowerBuilder(PB)是一种用于开发企业级客户端/服务器应用程序的快速应用开发工具。在PB中,DataStore是一种强大的功能,可以用来存储临时数据或者作为数据窗口的数据源。本文将详细介绍PB虚拟DataStore的创建与使用方法。 #### 二、关键概念解释 1. **DataStore**: DataStore是PowerBuilder中的一个对象,用于存储临时数据。它可以被看作是一个小型的内存数据库。 2. **虚拟DataStore**: 虚拟DataStore是指没有实际的物理表或视图对应的数据存储对象。它通常用于数据的临时存储或转换。 3. **`fw_create_ids_xx()`函数**: 这是一个自定义函数,用于创建虚拟DataStore。 4. **SQL语句**: SQL (Structured Query Language) 是一种用于管理关系型数据库的标准语言。 5. **DataWindow**: PowerBuilder中用于显示和编辑数据的一种组件。 #### 三、代码解析 下面是对给定代码段的详细解析: 1. **初始化变量**: - `ls_syntax`: 存储SQL语法检查结果。 - `ls_error`: 存储错误信息。 - `ls_present`: 存储DataWindow的样式设置。 - `ls_mo_nbr`: 存储主键号。 - `ls_nbr_step`: 存储步骤编号。 - `is_sql`: 存储SQL查询字符串。 2. **设置DataWindow样式**: - 设置背景颜色为白色。 - 设置边框宽度为6个像素,背景模式为2(网格),背景颜色为黄色。 - 设置字体为“Times New Roman”,字号为9。 3. **执行SQL语法检查**: - 使用`SQLCA.SyntaxFromSQL`函数进行SQL语法检查。 - 如果存在错误,则弹出警告框并返回。 4. **创建虚拟DataStore**: - 创建一个新的虚拟DataStore对象`ids_bat`。 - 使用`Create`方法创建DataStore,并传入`ls_syntax`和`ls_error`作为参数。 - 如果创建过程中出现错误,则弹出警告框并返回。 5. **修改DataStore属性**: - 设置`DataWindow.Grid.Lines`属性为2。 - 设置事务处理对象为`sqlca`。 - 设置DataWindow的细节颜色为白色。 6. **设置SQL查询**: - 根据`ls_mo_nbr`和`ls_nbr_step`动态构建SQL查询语句。 - 使用`SetSQLSelect`方法设置DataStore的查询语句。 - 调用`retrieve`方法执行查询操作。 7. **调用函数**: - 在打开事件中调用`fw_create_ids_xx`函数。 #### 四、示例应用场景 - **临时数据存储**: - 当需要临时保存用户输入的数据时,可以使用虚拟DataStore来避免频繁访问数据库。 - **数据转换**: - 在数据导入导出过程中,可以先将数据加载到虚拟DataStore中进行格式转换,再写入目标系统。 - **数据预览**: - 在用户提交数据前,可以在虚拟DataStore中预览数据,确保数据正确无误后再提交到数据库。 #### 五、总结 通过以上分析可以看出,虚拟DataStore在PowerBuilder开发中具有重要的作用。合理地利用虚拟DataStore不仅可以提高程序的性能,还可以简化数据处理逻辑,使得开发过程更加高效。开发者可以根据具体的应用场景灵活运用虚拟DataStore的相关技术。
string ls_syntax,ls_error,ls_present
string ls_mo_nbr, ls_nbr_step
is_sql = "select mo_nbr, mo_nbr_step, mo_seq, bat_status from mom_bat "
ls_present="style(type=grid) datawindow(color="+string(rgb(255,255,255))+") "&
+" text(border=6 background.mode=2 background.color="+string(rgb(255,255,0)) &
+" font.face='Times New Roman' font.height=-9 ) "&
+" column(background.mode=1 font.face='Times New Roman' font.height=-9 )"
ls_syntax = SQLCA.SyntaxFromSQL(is_sql,ls_present, ls_error)
IF Len(ls_error) > 0 THEN
MessageBox("Caution", &
"SyntaxFromSQL caused these error: " + ls_error)
RETURN
end if
ids_bat = create nv_dsa
ids_bat.Create(ls_syntax, ls_error)
if Len(ls_error) > 0 then
MessageBox("Caution", &
"Create cause these error: " + ls_error)
RETURN
end if
ids_bat.Modify("DataWindow.Grid.Lines=2")
ids_bat.settransobject(sqlca)
ids_bat.object.datawindow.detail.color=rgb(255,255,255)
//ids_bat.retrieve()
- kellyed2013-07-17不错很实用的软件。谢谢再次分享。
- wling2982012-10-25要完全看懂,有待时日啊,专业性太强了。
- 粉丝: 0
- 资源: 3
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助