动网论坛,站长建站首选,国内使用量最多的论坛软件 动网论坛官方技术讨论区 站长工具 申请属于您自己的免费论坛
首页 | 新闻资讯 | 网站运营 | 网络编程 | 数据库 | 服务器 | 网页设计 | 图像媒体 | 网络应用 | 搜索优化 | 资源下载 | 动网主机 | DVBOX
    本站内  互联网 ASP论坛  ASP.Net论坛  PHP论坛
   程序开发 → 阅读文章

 PowerBuilder修改数据库表结构的技巧

作者来源: 
阅读 数 638 人次 , 2006-4-26 11:17:00 

在实际开发应用中,经常会遇到修改数据库表结构的情况。用PowerBuilder修改数据库表结构与用Foxbase修改数据库结构不同。在PowerBuilder中,除可以在数据库表结构中添加字段名外,无法直接修改数据库表结构,如删除某个字段名或类型或字段名长度等,都会导致数据库表记录的丢失。 我们通过实践探索,总结了几种方法仅供大家参考,请大家批评指正。

一、 修改数据库表结构,数据库表中没有记录

方法1:将表结构以Export Table 文件格式输出。

从Database中选择要修改的数据库表Table。

从Objects中选择Export Table/View Syntax to Log,取名保存即选Save Log As,以*.sql格式保存。

从Objects中选择Database Administration。

从File中选择Dos Open,选文件名File name,*.sql,打开进行修改。

从Objects中选择Execute SQL。即产生一新的数据库表结构。

注意:Table名不要同名。

方法2:将表结构以SQL Syntax 文件格式输出。

从Database中选择要修改的数据库表Table。

按Preview键。

从File中选择Save Rows as,File Format 选SQL Syntax,取表名*.sql保存。

从File中选择Dos Open,打开表名*.sql,进行修改。

取表名后,Execute SQL。

注意:此种方法没有生成Primary Key。

二、 修改数据库表结构,保存原数据库表中记录

方法1:先修改数据库表结构,用SQL语句转移数据库表中记录

将表1生成表1.sql,修改结构,将表1另取名为表2。

运行表2.sql,生成表2。此时产生一新的数据库表结构。

从Objects中选择Database Administration,写SQL Statement: Insert into 新表名select * from 旧表名; Execute SQL。将旧表中所有字段内容转入新表中。

删除表1,从File中选择Dos Open,打开文件名File name即表2.sql,将表2统一改为表

1。运行表1.sql,生成新结构的表1,此时无记录。

按步骤3,将表2中的记录全部转入表1中。

若将部分字段转入,写SQL Statement:

insert into 新表名(字段1,字段2......) 

select 字段1,字段2......from 旧表名;

Execute SQL。旧表中部分字段内容转入新表中。

方法2:将表结构和记录以SQL Syntax 文件格式输出。

从Database中选择要修改的数据库表Table,按Preview键。

从File中选择Save Rows as,File Format 选SQL Syntax,取表名*.sql保存。

从File中选择Dos Open,打开表名*.sql,进行修改。

取表名后,Execute SQL。

方法3:将表结构和记录以TXT 文件格式输出。

从Database中打开数据库表,按Preview键。

从File中选择Save Rows as,File Format 选TXT,取表名*.txt保存。

将表生成表.sql,修改结构,运行表.sql,此时产生一新的数据库表结构。

从Database中打开数据库表,按Preview键。

从Rows中选择Import,选*.txt。

从File中选择Save changes to Database。

注意:方法1适用于任何修改数据库表结构的任何情况。方法2和方法3对删除字段名不适用。

另外,用Message传递参数必须注意以下几点:

1. 最好执行完窗口操作(打开或关闭)后马上将Message消息对象的值传给变量,这是因为Message是全局使用的对象,每一次事件被触发或传送时都会被使用,其他Script 也有可能用到Message消息对象,因此它有被覆盖的危险。

2.避免传送NULL对象,以免程序出错。

  
 本文Tags数据库  
 收藏本文  打印本文  论坛讨论  关闭窗口
· 上一篇:PB中如何得到Crosstab中的列名
· 下一篇:在PB中实现数据录入维持序号连续性的简单实现
· 动态SQL四种类型的语句格式
· 深入编程:控制面板知多少(上)
· Mozilla开发组的开发策略(英文)
· InstallShield简明使用教程之前言
· 如何编写高性能的应用程序


关于本站 | 联系我们 | 业务合作 | 客户案例 | 诚聘英才 | 广告合作 | 收藏本站
海口动网先锋网络科技有限公司版权所有
Copyright © 2000 - 2006 Cndw.Com
中华人民共和国电信与信息服务业务经营许可证编号 琼 ICP 020077