数据库软件如何升级数据库结构呢? ( 积分: 100 )

  • 主题发起人 主题发起人 delphigbg
  • 开始时间 开始时间
D

delphigbg

Unregistered / Unconfirmed
GUEST, unregistred user!
数据库软件如何升级数据库结构呢?做软件的客户多了.不同的客户数据库的修改是有的.于是有新版本的软件时.如果光升级应用程序.数据库不升级也运行不了.如何解决这个问题呢?我现在的解决办法是把旧数据库中的数据按表一个个的复制到新数据库中.不知各位有没有更好的办法.这样如果系统用久了升级会很慢的.
 
库结构的升级,可以做到主程序里面,每次运行时,升级库程序,用户是没有什么感觉的。
1、建立一个tStringList,存放要升级的库结构字段名等信息
2、做一个函数,运行STringList中的内容。
下面是代码片断:
procedure tLogonForm.AlterDatabase_xssj; //修改销售税金表
var
myado:TAdoquery;
myList:TStringList;
ID,I:Integer;
Begin
myado:=tadoquery.Create(self);
myado.ConnectionString:=adoquery1.ConnectionString;
myado.CommandTimeout:=0;
mylist:=TStringList.Create;
myList.clear;
mylist.Add('Alter table [dbo].[xssjwhtable] add ssdy char(50) not null Constraint [DF_xssjwhTable_ssdy] default(''气矿'')');
mylist.Add('alter table [dbo].[xssjwhtable] DROP CONSTRAINT [PK_xssjwhtable]');
mylist.Add('alter table [dbo].[xssjwhtable] add CONSTRAINT [PK_xssjWhTable] PRIMARY KEY CLUSTERED([lb],[ny],[ssdy]) ON [PRIMARY]');
For I:=0 to mylist.Count-1 do
begin
Try
If myado.active=true Then myado.Close;
myado.SQL.clear;
myado.SQL.Append(mylist.Strings);
myado.ExecSQL;
except
end;
end;
myado.Free;
mylist.Free;

end;
 
我是感觉这样改很麻烦的,因为有版本的关系.如果有的客户很久以年的一个版本.可能有时一天会有一个版本.如果这样改的话我感觉太麻烦了.所有的库结构你都要写,当然还有的一些参数设置在新库中有要加到旧库中.我不想加太多的脚本.
 
赶紧看看 数据库智能升级软件, 感觉是为你量身定制的。

www.feelfin.cn
 
不好意思,网址写错了, 是 www.feelfine.cn
 
看你写的还不错,我没有试过.不过你的思路能讲一下吗?
 
呵呵,不仅写的不错,我几个朋友说用着也还不错。

刚上传了一篇文档,你可以下载看看,里面讲得比较详细了。
 
楼主看了有何感想啊?好的话,也替我吆喝一下喽。我又不是赚钱的。
 
如果你需要更灵活的数据库结构升级工具,请与我联系,QQ:360434833
或者你可以直接到这个网页上下载http://mysoftway.w990.9410.com/
 
后退
顶部