知识大全 浅析PowerBuilder下动态SQL语句[2]
Posted 语句
篇首语:所谓活着的人,就是不断挑战的人,不断攀登命运险峰的人。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 浅析PowerBuilder下动态SQL语句[2]相关的知识,希望对你有一定的参考价值。
浅析PowerBuilder下动态SQL语句[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
(四)第四种格式
当执行有输入参数并且返回结果集的格式在编译时无法确定的SQL语句时可以使用第四种格式 有时候我们执行一些SQL语句时 不仅带有参数而且返回的结果集中有多少个字段 每个字段是什么类型的数据都不确定 这时只能使用第四种格式来实现
语法
PREPARE DynamicStagingArea FROM SQLStatementUSING TransactionObject;
DESCRIB DynamicStagingArea INTO DynamicDescriptionObject;
DECLARE cursor DYNAMIC CURSOR FOR DynamicDescriptionObject;
OPEN DYNAMIC cursor USING DESCRIPTOR DynamicDescriptionObject;
FETCH cursor USING DESCRIPTOR DynamicDescriptionObject;
CLOSE cursor;
其中 DynamicDescriptionObject是PowerBuilder提供的一个数据类型 在PowerBuilder中提供了一个DynamicDescriptionObject类型的全局数据类型SQLDA 用来存放动态SQL语句的输入输出参数
应用实例
将一个表中满足过滤条件的记录的所有字段取出来分别进行处理 表名在程序运行中由字符串变量传递 字段信息是不确定的 这里我们假设通过字符串变量中传递的表名是base
STRING lsString lsSQL lsTable lsColumn
INT liInt
DATETIME liTime
LsSQL= SELECT*FROM base WHERE code like?
PREPARE SQLSA FROM lsSQL;
DESCRIB SQLSA INTO SQLDA;∥SQLDA中含有输入参数的描述
DECLARE cursor_base DYNAMIC CURSOR FOR SQLSA;
SetDynamicparm(SQLDA % )∥传递参数值
OPEN DYNAMIC cursor_base USING DESCRIPTOR SQLDA;
FETCH cursor_base USING DESCRIPTOR SQLDA;
DO WHILE SALCA SQLCODE=
FOR liInt= TO SQLDA NumOutPuts
CHOOSE CASE SQLDA OutParmType[liInt]
CASE Typestring!
lsString=GetDynamicString(SQLDA liInt)
∥处理该字符型的字段
CASE TypeDateTime
LsDateTime=GetDynamicDateTime(SQLDA liInt)
∥处理该日期型的字段
… ∥处理其他类型的字段
… END CHOOSE
NEXT
∥将一条记录的所有字段取完后作相应的处理
FETCH cursor_base USING DESCRIPTOR SQLDA;
LOOP
CLOSE cursor_base;
二 结束语
从上面的说明和举例中可以看出动态SQL的特点是功能强 使用灵活 完全可以在程序代码中动态地生成具体要执行的SQL语句 是嵌入式SQL无法比拟的 当然动态SQL语句在运行速度上可能要比嵌入式SQL语句略慢一点 但随着计算机处理速度的大幅度提高 现在来说这一点已不成什么问题 因此 使用动态SQL语句仍是一种非常可取的处理方法
cha138/Article/program/PB/201311/24648相关参考
在PB中动态修改SQL语句[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nbs
用sql语句动态的创建access表的代如下! <% nowtime=now()tablename=cstr(year(nowtime))
在PB中动态修改SQL语句[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nbs
知识大全 带参数动态执行sql语句:Execute Immediate
带参数动态执行sql语句:ExecuteImmediate 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一
LINQtoSQL语句之动态查询 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! LINQtoSQ
存储过程里动态生成包含SQL语句字符串 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 某些时候我
知识大全 为什么在使用动态 SQL 语句时必须为低层数据库对象授予权限
为什么在使用动态SQL语句时必须为低层数据库对象授予权限? 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一
Sql语言基础教程sql基本语句[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &
知识大全 SQL Server执行SQL语句时内存占用特点[2]
SQLServer执行SQL语句时内存占用特点[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
在PowerBuilder中实现动态菜单的方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 曾