首页 > 开发 > 综合 > 正文

在PB中根据结构伸展文件创建数据表

2024-07-21 02:09:59
字体:
来源:转载
供稿:网友


在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。

商业源码热门下载www.html.org.cn

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表