关于如下问提
!-------------------------------------------
在Vb中可以利用DAO很容易地创建ACCESS数据库。
不知怎么用Delphi来创建Access?
有那位大虾这样做过。最好能有源码。谢谢
!-------------------------------------------
你的回复是:
!-------------------------------------------------------------------
Const
SConnectionString = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;'
function CreateAccessFile(FileName:String;PassWord:string=''):boolean;
//建立Access文件,如果文件存在则失败
var
STempFileName:string;
vCatalog:OleVariant;
begin
STempFileName:='d:\temp\123.mdb';
try
vCatalog:=CreateOleObject('ADOX.Catalog');
vCatalog.Create(format(SConnectionString,[STempFileName,PassWord]));
result:=CopyFile(PChar(STempFileName),PChar(FileName),True);
DeleteFile(STempFileName);
except
result:=false;
end;
end; +'Jet OLEDB:Database Password=%s;';
!-------------------------------------------------------------------但我用了之后有个问题
创建的数据库是打开的,怎样关闭呢?
再操作
FileName这个数据文件说是独占了。请再关注
留贴,必谢。
!-------------------------------------------
在Vb中可以利用DAO很容易地创建ACCESS数据库。
不知怎么用Delphi来创建Access?
有那位大虾这样做过。最好能有源码。谢谢
!-------------------------------------------
你的回复是:
!-------------------------------------------------------------------
Const
SConnectionString = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;'
function CreateAccessFile(FileName:String;PassWord:string=''):boolean;
//建立Access文件,如果文件存在则失败
var
STempFileName:string;
vCatalog:OleVariant;
begin
STempFileName:='d:\temp\123.mdb';
try
vCatalog:=CreateOleObject('ADOX.Catalog');
vCatalog.Create(format(SConnectionString,[STempFileName,PassWord]));
result:=CopyFile(PChar(STempFileName),PChar(FileName),True);
DeleteFile(STempFileName);
except
result:=false;
end;
end; +'Jet OLEDB:Database Password=%s;';
!-------------------------------------------------------------------但我用了之后有个问题
创建的数据库是打开的,怎样关闭呢?
再操作
FileName这个数据文件说是独占了。请再关注
留贴,必谢。
SConnectionString = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;'+'Jet OLEDB:Database Password=%s;';function CreateAccessFile(FileName:String;PassWord:string=''):boolean;
//建立Access文件,如果文件存在则失败
var
STempFileName:string;
vCatalog:OleVariant;
begin
STempFileName:='d:\temp\123.mdb';
try
vCatalog:=CreateOleObject('ADOX.Catalog');
vCatalog.Create(format(SConnectionString,[STempFileName,PassWord]));
result:=CopyFile(PChar(STempFileName),PChar(FileName),True);
DeleteFile(STempFileName);
except
result:=false;
end;
end;
我又试过,就用你的代码,可以建,但vCatalog.Create(format(SConnectionString,[STempFileName,PassWord]));建出来的数据库不能用delphi打开,说是他的用户组信息丢失了。请你帮我看一下。
另,ADOX对像的资料从那儿查阅?
如果不加密码是可以用TAdoconnection打开的,如果加上密码用TAdoconnection打不开。
仁兄 WWWWA(aaaa)
ADOX相关的资料在那儿能找到,可否给我一份?
CONNECTIONSTRING中将密码写上,
你的ADOCONNECTION CONNECTIONSTRING?
初始化提供者时发生错误,测试连接失败。无法启动应用程序。工作组信息文件丢失,或是被其它用户以独占方式打开。具本代码如下
function TForm1.CreateAccessFile(FileName:String;PassWord:string):boolean;
//建立Access文件,如果文件存在则失败
const
SConnectionString = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;Jet OLEDB:Database Password=%s;';
var
STempFileName:string;
vCatalog:OleVariant;
begin
STempFileName:='d:\123.mdb';
try
vCatalog:=CreateOleObject('ADOX.Catalog');
vCatalog.Create(format(SConnectionString,[STempFileName,PassWord]));
result:=CopyFile(PChar(STempFileName),PChar(FileName),True);
DeleteFile(STempFileName);
except
result:=false;
end;
end;如果CreateAccessFile('','');用TADOConnection打开没有问题。
如查CreateAccessFile('','12');打TADOConnection开有问题。
connectionstring是用向导生成的,在向导测试连接时就报错!
如下:
Provider=Microsoft.Jet.OLEDB.4.0;Password=12;Data Source=D:\123.mdb;Persist Security Info=True
试试看你那儿有这样的问题没有呀?
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\zz\123.mdb;Persist Security Info=False;Jet OLEDB:Database Password=12
在D6+OFFICE2000下已测试通过
vb好我也不用delphi了。
Persist Security Info=False不同,顺序不同?这也会影响呀!
好奇怪?这是怎么会事呢?为什么会这样?
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\zz\123.mdb;Persist Security Info=False;Jet OLEDB:Database Password=12
你的:
Provider=Microsoft.Jet.OLEDB.4.0;Password=12;Data Source=D:\123.mdb;Persist Security Info=True
再仔细看看
Provider 指定 OLE DB Provider for Microsoft Jet。
Data Source 指定数据库路径和文件名(例如,c:\Northwind.mdb)。
User ID 指定用户名称。如果未指定此关键字,则默认使用字符串 "admin"。
Password 指定用户密码。如果未指定此关键字,则默认使用空字符串 ("")。