在PB中根据结构伸展文件创建数据表
发表于:2007-07-02来源:作者:点击数:
标签:
??在PowerBuilder(文中简称PB)中,没有现成的像 VFP 中根据结构伸展文件生成数据表的函数。而在 数据库 应用系统的 开发 中,常常需要根据用户的要求创建数据表。我们可以仿照VFP的结构伸展文件创建一个数据表sjbjg(如图),用来存放用户欲创建数据表的结构
??在PowerBuilder(文中简称PB)中,没有现成的像 VFP 中根据结构伸展文件生成数据表的函数。而在
数据库应用系统的
开发中,常常需要根据用户的要求创建数据表。我们可以仿照VFP的结构伸展文件创建一个数据表sjbjg(如图),用来存放用户欲创建数据表的结构,从而来相对简单地解决这个问题。
??为sjbjg数据表建立一个名为d_sjbjg的Grid数据窗口,数据源采用Quick Select。
??新建一个窗口,添加一个数据窗口控件dw_1和一个按钮控件cb_1。Dw_1的dataObject设置为d_sjbjg,cb_1的text设置为“创建数据表”。在cb_1的Clicked事件中输入以下代码:
??string Mysql
??int ls_last,row
??mysql=@#drop table Tablename@# // Table name创建的数据表名称
??execute immediate :Mysql USING
SQLCA;
??Mysql=@#create TABLE Tablename (@#
??ls_last=dw_1.rowcount()
??if ls_last>0 then
??for row=1 to ls_last
??mysql=mysql+trim(dw_1.GetItemString(row,“Field_name ”))//相应的数据表字段名
??choose case dw_1.GetItemString(row,“Field_type”)//相应数据表字段类型
??case @#char@#
??mysql=mysql+@# char(@#+trim(dw_1.GetItemString(row,“Field_len”))+@#) @#//相应数据表字段长度
??case @#decimal@#
??mysql=mysql+@# decimal(@#+trim(dw_1.GetItemString(row,“Field_len”))+@#,@#
??mysql=mysql+trim(dw_1.GetItem String(row,“Field_dec”))+@#) @#
??case @#integer@#
??mysql=mysql+@# integer @#
??case @#date@#
??mysql=mysql+@# date @#
??end choose
??if row<>ls_last then mysql=mysql+@#,@# else mysql=mysql+@#)@#
??next
??end if
??execute immediate :Mysql USING SQLCA;//创建数据表
??messagebox(“信息提示”,@#数据表Table name创建完毕@#,information!,OK!)
??由于不同数据库对数据表的数据类型要求不尽相同,故本文仅以常用的char(字符型)、decimal(十进制型)、integer(整型)、date(日期型)为例,其他数据类型参照上述类型进行修改。
??本程序在PB 9.0 调试通过,数据库为PB 9.0 自带的Adaptive Server Anywhere。
原文转自:http://www.ltesting.net