### PB6.5开发笔记:标准SQL调用与循环调用 #### 一、概述 在PB(PowerBuilder)6.5中进行数据库操作时,经常需要用到SQL语句来完成数据查询、更新等任务。本文档将详细介绍如何在PB6.5中标准地调用SQL语句以及如何通过循环来多次执行SQL语句。 #### 二、标准SQL调用 在PB6.5中,可以通过以下步骤来实现标准SQL语句的调用: 1. **定义SQL语句**: ```powerbuilder ls_sql = "SELECT road_name FROM bb_data_wide_bus_temp_t WHERE register_number='" + ls_register_number + "'" ``` 2. **声明动态游标**: ```powerbuilder DECLARE cur_get DYNAMIC CURSOR FOR SQLSA; ``` 3. **准备SQL语句**: ```powerbuilder PREPARE sqlsa FROM :ls_sql; ``` 4. **打开游标**: ```powerbuilder OPEN DYNAMIC cur_get; ``` 5. **获取数据**: ```powerbuilder FETCH cur_get INTO :ls_value; ``` 6. **检查错误**: ```powerbuilder IF sqlca.sqlcode <> 0 THEN MESSAGEBOX("提示", "获取失败!", EXCLAMATION!) ENDIF ``` 7. **关闭游标**: ```powerbuilder CLOSE cur_get; ``` #### 三、标准循环调用SQL 对于需要多次执行相同SQL语句的情况,可以使用循环来实现。下面是一个示例代码片段: 1. **声明动态游标**: ```powerbuilder DECLARE cur_sql DYNAMIC CURSOR FOR SQLSA; ``` 2. **准备SQL语句**: ```powerbuilder PREPARE sqlsa FROM :ls_sql; ``` 3. **打开游标**: ```powerbuilder OPEN DYNAMIC cur_sql; ``` 4. **循环读取数据**: ```powerbuilder DO WHILE sqlca.sqlcode = 0 FETCH cur_sql INTO :ls_register_number, :ls_complete_note; ll_sqlcode = sqlca.sqlcode IF ll_sqlcode < 0 THEN CLOSE cur_sql; af_disconnect(); MESSAGEBOX("提示", "错误!", STOPSIGN!) RETURN ELSEIF ll_sqlcode = 100 THEN EXIT ENDIF ddlb_register_number.addItem(TRIM(ls_register_number + '|' + ls_complete_note)) LOOP ``` 5. **关闭游标**: ```powerbuilder CLOSE cur_sql; ``` #### 四、其他相关功能实现 除了标准的SQL调用外,本文档还提到了其他一些相关的功能实现,例如窗口的中心化、连接数据库、使用DataWindow控件等。 1. **窗口中心化**: ```powerbuilder af_center_window(this); ``` 2. **连接数据库**: ```powerbuilder af_connect(); ``` 3. **使用DataWindow控件**: - 获取城市编码: ```powerbuilder dw_city_code.getChild('city_code', DWC); DWC.setTransObject(sqlca); DWC.Retrieve(gs_citycode, gi_citylevel); dw_city_code.setTransObject(sqlca); dw_city_code.Retrieve(); dw_city_code.setItem(1, 'city_code', DWC.getItemString(1, 'city_code')); is_city_code = dw_city_code.getItemString(dw_city_code.getRow(), 'city_code'); ``` - 获取服务类型: ```powerbuilder dw_service_kind.getChild('service_kind', DWC); DWC.setTransObject(sqlca); DWC.Retrieve(); dw_service_kind.setTransObject(sqlca); dw_service_kind.Retrieve(); dw_service_kind.setItem(1, 'service_kind', 10); ii_service_kind = dw_service_kind.getItemNumber(dw_service_kind.getRow(), 'service_kind'); ``` - 获取申请事件: ```powerbuilder dw_apply_event.getChild('apply_event', DWC); DWC.setTransObject(sqlca); DWC.Retrieve(ii_service_kind); dw_apply_event.setTransObject(sqlca); dw_apply_event.Retrieve(); dw_apply_event.setItem(1, 'apply_event', DWC.getItemNumber(1, 'apply_event')); ii_apply_event = dw_apply_event.getItemNumber(dw_apply_event.getRow(), 'apply_event'); ``` 4. **查询操作**: ```powerbuilder cb_query.TriggerEvent(clicked!); ``` 5. **断开数据库连接**: ```powerbuilder af_disconnect(); ``` #### 五、总结 本文档详细介绍了在PB6.5中进行标准SQL调用和循环调用的方法,并提供了具体的代码示例。此外,还介绍了如何使用DataWindow控件进行数据检索和显示。这些方法可以帮助开发者更高效地完成PB应用中的数据库操作任务。
- 粉丝: 15
- 资源: 50
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 汇编语言入门与编程实践-低层开发者的必备技能
- WatchIO二进制固件和刷机工具(无需源码编译).zip
- 提取网页核心信息:Python中的Readability与Date Extraction技术
- Swift语言教程:从基础语法到高级特性的全面讲解
- 表白代码(发射爱心).zip学习资料程序
- 常用工具合集(包括汉字转拼音工具、常用数据格式相互转换工具、尺寸相关的工具类).zip
- Delphi编程教程:从入门到精通Windows应用程序开发
- 视觉化编程入门指南:Visual Basic语言教程及其应用领域
- 纯代码实现的3d爱心.zip学习资料语言
- 儿童编程教育中Scratch语言的基础教学及实战示例