知识大全 浅析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]

在PB中动态修改SQL语句[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nbs

知识大全 用sql语句动态的创建access表

   用sql语句动态的创建access表的代如下! <% nowtime=now()tablename=cstr(year(nowtime))

知识大全 在PB中动态修改SQL语句[1]

在PB中动态修改SQL语句[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nbs

知识大全 带参数动态执行sql语句:Execute Immediate

带参数动态执行sql语句:ExecuteImmediate  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 LINQ to SQL语句之动态查询

LINQtoSQL语句之动态查询  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  LINQtoSQ

知识大全 存储过程里动态生成包含SQL语句字符串

存储过程里动态生成包含SQL语句字符串  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  某些时候我

知识大全 为什么在使用动态 SQL 语句时必须为低层数据库对象授予权限

为什么在使用动态SQL语句时必须为低层数据库对象授予权限?  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 Sql语言基础教程 sql基本语句[2]

Sql语言基础教程sql基本语句[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &

知识大全 SQL Server执行SQL语句时内存占用特点[2]

SQLServer执行SQL语句时内存占用特点[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 在PowerBuilder中实现动态菜单的方法

在PowerBuilder中实现动态菜单的方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  曾