access数据库怎么关闭?(30分)

  • 主题发起人 主题发起人 yhwyb
  • 开始时间 开始时间
Y

yhwyb

Unregistered / Unconfirmed
GUEST, unregistred user!
我用d5+ado+access。
我在做数据表的备份和恢复工作时,恢复时总是报错:"目标文件在使用",恢复前我使用了
adotable1.active:=false;语句,原意为关闭这个数据表,但实际上没关闭成功,我想
请教一下,怎样关闭access的*.mdb文件?如果用paradox数据表,我用上面的语句就可
以关闭,而这个表是access一个库中的一个表。不知道我的这个问题说清楚了没有??
 
说清楚了
当你使用adotable1.active:=false时,系统确实在做关闭数据表的工作,但是从关闭
到关闭见效,系统有个延时的问题,很麻烦的,最好能在独占数据库的情况下完成备份和恢复工作


 
版主你好,怎么独占?我是单机工作方法。请再示...
 
很简单
procedure TForm1.Button2Click(Sender: TObject);
begin
ADOTable1.Active:=false;
ADOTable1.Free;
end;
 
to iapollo:用你的方法可以关闭,但在不退出程序的情况下,我用
adotable1.active:=true;
却不能再次使用数据表,总出错,请再帮解决一下吧!!!
 
//动态创建adotable;
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, Grids, DBGrids, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
tmpTab:TADOTable;
const
constr='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=G:/ASP Project/DelphiProject/DBWebService1/post.mdb;Persist Security Info=False';

implementation

{$R *.dfm}

//打开并显示纪录。
procedure TForm1.Button2Click(Sender: TObject);
begin
tmpTab:=TADOTable.Create(self);
tmpTab.ConnectionString:=constr;
tmpTab.TableName:='邮政编码';
DataSource1.DataSet:=tmpTab;
tmpTab.Active:=true;

end;

//关闭。
procedure TForm1.Button1Click(Sender: TObject);
begin
if tmpTab.Active then begin
tmpTab.Active:=false;
tmpTab.Free;
end;
end;

end.
 
可能还要关闭数据库连接
ADOTable1.Connection.Connected := False;
try
{复制数据库}
except
{显示一些信息,比如稍后再试?}
end;
 
多人接受答案了。
 
后退
顶部