数据备份与恢复(50分)

  • 主题发起人 主题发起人 kenmen
  • 开始时间 开始时间
K

kenmen

Unregistered / Unconfirmed
GUEST, unregistred user!
我的做法是在运行期删了原来的数据库,然后把备份好的数据库copy回去。
我用deletetable,但提示说数据库正忙,不能删。我是这样写的:

with table1 do
begin
active:=false;
databasename:='datat';
tablename:='nn';
tabletype:=ttdefault;
deletetable;
end;

用deletefile又说文件被其他程序用着,不能删。请问该怎办?
或有啥更好的办法进行数据的恢复。
谢了!
 
版主:cAkk, 吴剑明 两位能看看吗?
谢了!
 
你该不会是在ide下运行的吧?在ide下当然不行了,你的delphi正在用着一个连接呢
 
to:honghs
能说详细点吗?
不明?
啥是ide?
 
要是文件型数据库,直接用DeleteFile删了这个数据库文件
 
to:wangxd
不能啊,文件被delphi用着,不能删。
怎办?
 
to kenmen:
用李颖的那个数据备份控件是不是可以解决?
 

有用过那个控件的人,请告诉一下,是不是可以在D5下使用呢?后台数据库是SQL2000。
 
>>kenmen
active:=false还不能删吗?
看看是不是被别的代码打开了
 
to:wangxd
还不能删啊。。。
:(
怎办?

to:liuzr
那个控件我下不了,请问在那可下?
 
to kenmen:
用DELPHI5中的Data access控件组里的Batchmove控件进行数据备份很好的
Batchmove里的source属性可以是table和query,destination属性只能是table
选择mode属性为BATCOPY的话,目标表变成source表一样
选择mode属性为BATAPPEND的话,目标表和源表的字段要相同,把源表的数据加到
目标表中,但主键不能重复
还有几个属性,你看帮助吧
这样进行备份的话,可以成批处理数据,免去很多代码
你试试吧
 
to kenmen:
李颖的那个下载地址:
  http://delphi.yesite.com/
你看看行不行!
 
只要你使用过数据库,BDE引擎就已经打开,以后不能再删除,你可以把删除操作程序放
到下次打开数据库之前就行了
 
to:LSS
书是这样写的:
with table1 do
begin
active:=false;
databasename:='数据库别名';
tablename:='数据库名';
tabletype:=数据类型;
deletetable;
end;
书上说这样就可删数据库了,但不能。
 
begin
with table1 do
begin
active:=false;
databasename:='aa';
tablename:='aa.db';
deletetable;
end;
end;
我已经试过了,是PARADOX表,没有问题,能删掉,你如果删不掉,原因还是打开过这
个数据库,即使你关掉了,它的连接依然存在,象我前面说的,把这几条语句放在执
行的最前面,前面不要有任何打开此库的操作,就行了,上面的程序如果在你的程序中
不能执行,请单建一新的工程,加入以上语句,你的结果会和我一样的,如果是其它数
据库,可以告诉我,我帮你试一下
 
to:LSS
我是想在程序运行时,恢复数据库。你说‘打开过这
个数据库,即使你关掉了,它的连接依然存在‘那该怎办?
如果不用控件的话。
 
我不是说了吗,把恢复数据库的操作放在进入程序时运行
 
那我想在程序运行时进行恢复数据库呢,有其它方法吗?
您这样说好像交互性不大好。
请不吝指教!
 
你只要把当前使用该数据源的数据控件的窗体及代码关闭就可以了,因为你当前的窗体及
代码正在使用该数据库。
 
你在table1.active:=false后,缺省的Session仍保持着连接,应把它关闭。
 
那怎样把session关掉呢?
请指教!
谢了!
 
后退
顶部