数据库应用程序通常进行一项确定的工作 在编写和编译时就可以确定完整的SQL语句 但是当需要使用PowerBuilder不支持的嵌入SQL语句 或者在编译时不能确定SQL语句的具体格式和参数时 只能在程序运行过程中构造SQL语句 需要使用动态SQL语句 以Format 动态SQL语句为例 使用格式如下 DECLARE Cursor | Procedure DYNAMIC CURSOR | PROCEDURE FOR DynamicStagingArea
PREPARE DynamicStagingArea FROM SQLStatement{USING TransactionObject}
DESCRIBE DynamicStagingArea INTO DynamicDescriptionArea
OPEN DYNAMIC Cursor | ProcedureUSING DESCRIPTOR DynamicDescriptionArea}
EXECUTE DYNAMIC Cursor | ProcedureUSING DESCRIPTOR DynamicDescriptionArea
FETCH Cursor | Procedure USING DESCRIPTOR DynamicDescriptionArea
CLOSE Cursor | Procedure
在使用动态SQL语句时 需准备DynamicStagingArea对象(全局对象SQLSA)和DynamicDescriptionArea对象(全局对象SQLDA) 定义游标或过程 读取PREPARE语句中的SQL语句以及语句中说明的参数和类型 执行FETCH语句后 调用相关的函数逐条读取并处理检索结果 动态SQL语句虽然解能够在程序运行过程中构造SQL语句 但在实际应用中较少使用 若SELECT语句的结果序列一定 可以通过重新指定DataWindow对象的SELECT语句的方法 达到动态修改SQL语句的功能 运用时首先用Describe函数读取DataWindow对象的SELECT语句 用Replace等函数修改出符合要求的SELECT语句 并且可以增加检索条件 再用SetSQLSelect函数为DataWindow控件指定修改后的SELECT语句
程序代码 string sql_string sql_newlong start_pos= string old_str //select语句中需要替换的字符串string new_str //替换字符串 可以是结构相同的表名
lishixinzhi/Article/program/PB/201311/24558是要在代码中转换类型还是要修改后台表结构的数据类型?
如果是前台PB的脚本,string(...)本身就是一个函数。可以把括号内的变量转成string类型。
后台,属于数据库修改表结构的范围,使用alter table语句。
不同的数据库,后边部分有用MODIFY,有用ALTER COLUMN的
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)