数据库

本类阅读TOP10

·SQL语句导入导出大全
·SQL Server日期计算
·SQL语句导入导出大全
·SQL to Excel 的应用
·Oracle中password file的作用及说明
·MS SQLServer OLEDB分布式事务无法启动的一般解决方案
·sqlserver2000数据库置疑的解决方法
·一个比较实用的大数据量分页存储过程
·如何在正运行 SQL Server 7.0 的服务器之间传输登录和密码
·SQL中两台服务器间使用连接服务器

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
在PB中根据结构伸展文件创建数据表

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站


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




相关文章

相关软件