怎么做版本升级???(100分)

  • 主题发起人 主题发起人 小汽车
  • 开始时间 开始时间

小汽车

Unregistered / Unconfirmed
GUEST, unregistred user!
不同的版本,要更新不同的数据库,例如,假如我现在的版本是1。0,新的版本是1。2,
现在我的客户想要更新,我让他只更新数据库呢,还是连界面一起更新掉!
假如我的要求是这样,我给客户只要更新数据库就可以了,客户端不要更新!
那因该怎么来设计?
假如我的要求是这样,我给客户的要求是包括界面也要更新,那我又要怎么来设计!!!
 
怎么没有人跟呢?:)
 
看具体要求,如改动很大,就重新做!
一般在原来的基础上再完善些,界面嘛为了有新鲜感,换了会更好点………
 
就看你的程序了,如果你的程序很猛,做什么改动都要不更新Client,只需改改数据库就搞定的话当然这样最好了。
(估计也做不到吧)

可以做成在线更新,参考一下金山毒霸的在线更新。
 
有没有谁作过,能不能来点代码看看!!!
 
没有人感兴趣吗?:)
 
自动更新不是很多嘛~~~~~~你替换几个文件不就得了,就象游戏李有Crack一样。
替换一下就更新了
 
其实你就是要做一个版本控制机制了
两个版本,一个是数据库(中的数据)的版本,一个是程序的版本
数据库当前版本要求需要什么样的客户端版本
反过来,这个版本客户端必须要在最低为多少版本的数据库上运行
只要这两个问题解决了就OK了。
你可以建一个表,上面记录了数据库的当前版本,要求的客户端最低版本号(或者版本号范围)
你的程序登录数据库的时候检查一下是否符合就OK了。
 
个人认为版本升级时要考虑数据库结构的变化,这是最复杂的,我问过一个朋友是高手,
他说他的数据库一般不需要升级,唉,等于没说。

以前大富翁上面的大侠们现今都不知哪里去了,想听听他们的意见。

愿意替你加200分奖金,请大侠们讲讲课。
 
谢谢各位的意见,同时也谢谢iwalk的赞助,
我现在的想法是这样的,因该是改数据库,但现在的问题是:
在旧的表中的ID是自动生成的,而且第一个他的id号不是0001,而是0003或者是0004,
但新表中的id是从0001开始的,这样一来的话,不就乱了吗?
我现在向各位请教一下,能不能这样!在原来的数据表上加上新表中(在旧表中没有的字段)
字段,不知道这样的想法能不能实现?:)
分不过的话,还可以在加!!!
 
+2,delete record, id=3 哈哈?
但是原理也这样吧,参考方法如下:
为和原库ID对应,我的办法如下:
表1结构=表2结构
表1源记录 表2空记录(无记录的新表)
1、排序表1ID
2、计算表1的ID与当前累加计数差值
3、在表2中追加、删除记录第2步骤的差值数-1操作
4、将表1记录添加到表2


 
to :kunmeng
你的
2、计算表1的ID与当前累加计数差值
3、在表2中追加、删除记录第2步骤的差值数-1操作
不是很明白!
“当前累加计数差值”?
和第二步骤的差值-1???
 
问题:自动ID值是否保留,我理解你的意思是保留,对吗?
自动ID值是累加(默认),当删除记录时,删除记录的ID值也不会再被使用,如果想在新表中
使用的自动增量ID字段记录的值等于源表自动增量ID字段记录的值,需要逐条操作,而不是
sql语句,
假设源表记录共有4条
源表.id(identity)
003
005
007
008
如果实现新表.ID(identity)=源表.id(identity),又因为identity类型的字段不能赋值,所以
实现
新表.id(identity)
003
005
007
008
如下:
adotable1.open;source table
adotable2.open;new table
int_crease:integer;
rcount:=table1.recordcount;
for i:=1 to rcount do
begin
adotable2.open;
adotable12.moveby(i);
int_crease:=adotable2.fieldbyname('id').asinteger;
while adotable1.fieldbyname('id').asinteger<>Int_crease-1 do
begin
adotable2.insert;//插入无用空记录
adotable2.last;//移动记录道末尾
adotable2.delete;//删除末尾记录,以上三步实现新表ID自动增加;
int_crease=adotable2.fieldbyname('id').asinteger;
end;
adotable2.next
end;
其实设置为ID的字段,如果没有外键根本没有必要保留该值到新表中;
写完废话连篇,没什么价值,或许我没理解你的意思,
 
不是这样的,我现在是想把表1中的数据导到表2中,
但表1和表2的ID是自增的,我现在的问题是,表1中的ID是不规则的,
怎么让表2中ID和表1相同
 
我上面不是给你实现方法了吗,认真看看好不好?
另外identity类型的字段的记录前面怎么会有0,如0003,应该为3吧?如果你的记录中的ID=0003
那么一定不是identity类型的;
 
你的程序我已经试过,行不通,
adotable2.insert;//插入无用空记录
adotable2.last;//移动记录道末尾
adotable2.delete;//删除末尾记录,以上三步实现新表ID自动增加;
好像不行哦,
还有是3不是003,sorry
 
我说,我的代码你的看懂呀,我只是告诉你思路,
插入记录
移动记录到尾
删除记录
自己编吧?我这没有delphi,

另外,我觉得你陷入误区了,
不知道ID字段和别的表有关联吗?如果没有关联,identity字段的值没必要保留,
明白了吗?:)
我希望你能够认清楚ID值有没有必要保留到新表中,如果有必要,请说明原因
我帮你把代码调通。ok?


 
后退
顶部