如果pb开发的数据库结构升级,比如增加字段,pb应怎样开发升级程序

北京大丸子 2013-06-13 08:15:36
pb开发的程序,如果原来就3个字段,已经发布后发现需要再增加三个字段(datetime,address,phone),请问怎样能够保证安全并且便捷(是在pb开发一个update还是做一个批处理程序?)
...全文
595 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
北京大丸子 2014-10-10
  • 打赏
  • 举报
回复
引用 10 楼 zc070511 的回复:
把数据窗的语法保存到数据库,检索数据时动态生成,新增字段后,把新的数据窗语法替换一下即可
这种做法对于表单中的标题栏是不是没法换成中文或者增加一些字体样式?
zc070511 2014-10-10
  • 打赏
  • 举报
回复
把数据窗的语法保存到数据库,检索数据时动态生成,新增字段后,把新的数据窗语法替换一下即可
youping_ouyang 2013-07-11
  • 打赏
  • 举报
回复
升级完毕后,将升级过的语句都写入到system_update表中
youping_ouyang 2013-07-11
  • 打赏
  • 举报
回复
记得升级语句的排序是按时间先后顺序执行的
youping_ouyang 2013-07-11
  • 打赏
  • 举报
回复
1.在安装目录下建一个SQL的文件夹,所有的升级语句都约定 yyyymmdd_升级语句.sql 的名称,每次升级的升级语句都要按这个规范写,写SQL语句的时候,要使用安全的方式写,如果有表中有数据,要先将表中的数据转移到中间表 如 tmp_table 表中(当然还要检查中间表是否存在),重新构建表结构,然后再插入回来,当然小的增加字段,不是很重要的,直接用alter table就可以了,存储过程反复执行都没什么问题。 2.在数据库中增加一个表,如 system_update(id,sql_name,...),主要用来记录已经升级了的语句 3.开发一个update.exe独立程序,改程序的目的主要是在启动后,检查检查sql文件夹下的文件名和system_update表中的已经升级过的sql进行比较,如果没有升级过,就在update.exe的主界面的升级列表中呈现出来,如果已经执行过,就不显示,update.exe有三个按钮,一个即使立即升级,一个是跳过,一个关闭,升级按钮就是将升级列表中的升级语句读取出来,在数据库中执行。 4.在系统启动时,检查system_update和sql文件夹中的文件,如果存在升级语句,则run命令启动update.exe,关闭程序,启动update.exe后,用户执行完,则通过run命令,启动主程序,就OK了
凡爸 2013-07-11
  • 打赏
  • 举报
回复
全都是答非所问。 人家问的是数据库增加字段了,程序有没有什么便捷的方法能自动升级数据窗口。 我的回答是:即使有也没有必要。数据库增加了字段,那么用来录入的数据窗口手工加上就行了,其他的数据窗口并不一定是必须的,要根据需要是否展现而定。
otnto 2013-07-11
  • 打赏
  • 举报
回复
升级脚本带版本号,升级服务器上下载升级脚本文件,更新程序再执行sql脚本,执行完删除这个脚本

go
if not exists(select 1 from syscolumns where id = object_id('tb') and name = 'columnname')
  alter table tb add columnname int
go
sbks 2013-07-11
  • 打赏
  • 举报
回复
写数据库更改的脚本,在PB里执行就可以了 对于sql server而言 string ls_sql ls_sql = "alter table xxx add yyy varchar(20)" execute immediate :ls_sql using sqlca; ..... 就这几句话而已,当然,还有很多逻辑判断方面的事情要做,看你自己了.sql server 2000的几个系统表,随便你查 sysdatabases,sysobjects.... sql 2005以上版本系统表的表名有变动,得自己研究一下了
dyf0130 2013-06-13
  • 打赏
  • 举报
回复
我的实现是在数据库中设置这么1个表

版本号,下载地址,是否可以用

程序自己运行是检查自己否是可用版本
不是可用版本就提示用户是否执行下载更新
北京大丸子 2013-06-13
  • 打赏
  • 举报
回复
有这样的例子吗?
WorldMobile 2013-06-13
  • 打赏
  • 举报
回复
可以用pb做一个升级程序,检测数据库字段,如果没有就自动新增。

1,077

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧