在做数据库备份与压缩的时候,我从project菜单上选择 import type library,选择microsoft DAO 3.6 object(vers

  • 主题发起人 主题发起人 cfx
  • 开始时间 开始时间
C

cfx

Unregistered / Unconfirmed
GUEST, unregistred user!
在做数据库备份与压缩的时候,我从project菜单上选择 import type library,选择microsoft DAO 3.6 object(version 5.0) 然后发现RepairDatabase,和CompactDatabase居然不能用,,帮忙!, (14分)<br />请告诉我该怎么做...不要建议我换种方式,或者用别的控件..谢谢.

开发平台: ACCESS2000 + D6
 
为什么用DAO呢,用ADO不是更好
 
好像是D6的bug?
D5是没有问题的。
 
&gt;&gt;&gt;做数据库备份与压缩的时候,从project菜单上选择 import type library?
可能是你理解错了,import type library 功能是为了调用外部 OLE/ActiveX 对象的,
与做数据库备份与压缩没什么直接关系。
备份与压缩是需要使用各种数据库自带的工具实现的,
也可以用Delphi里的 DataDump
对于 SQL Server 可以用 Query 控件或者 ADOCommand 控件发一个 Dump Database 语句
对于 DBF、ACCESS 直接复制文件就可以了。Copyfileto函数就行了:)
 
老兄,这个问题问过太多遍了,看下面的完美解决方法:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1268352
 
to ysai,
你的代码,我这里居然通不过..:(
 
这两个在你那里如何?建议使用第一个。
procedure TForm1.Button2Click(Sender: TObject);
var
Dest_DB_Connection: OleVariant;
l_Source_Con_Str, l_Dest_Con_Str: string;
begin
try
Dest_DB_Connection := CreateOleObject('JRO.JetEngine');
except
Exit;
end;

l_Source_Con_Str := 'Data Source=C:/1.mdb;';

l_Dest_Con_Str := 'Data Source=C:/2.mdb;';

try
OleCheck(Dest_DB_Connection.CompactDatabase(l_Source_Con_Str, l_Dest_Con_Str));
except
end;
end;
-----------------------------------------------
var dao:OLEVariant;
begin
Adoconnection.Close
screen.Cursor:=crHourGlass;
dao:=CreateOleObject('DAO.DBEngine.36');
dao.CompactDatabase(DBName,tempdaname);
DeleteFile(DBName);
RenameFile(tempdbname,DBName);
screen.Cursor:=crDefault;
dao:=NUll;
Adoconnection.Open;
end;
 
多人接受答案了。
 
后退
顶部