TadoConnection连接access数据库的方式,我被搞的头都大了。各位进来讨论呀!(6分)

  • 主题发起人 主题发起人 阿魁
  • 开始时间 开始时间

阿魁

Unregistered / Unconfirmed
GUEST, unregistred user!
在VB里,简单的连接字符串就能搞定,比如:
driver={microsoft access driver (*.mdb)};dbq=db.mdb
我在delphi里也这样用,将该字符串赋值给ConnectionString,
有时候好用,有时候提示“找不到可以安装的ISAM”,让人摸不着头脑。

这是不是DELPHI对ADO封装的不好,或者是不灵活导致的呢?

各位高手请指教。

(只有6分了)
 
看在你确实比较诚实的份上,给你一个例子:

function tfrmain.dbopen:boolean;
var s,ss:string;
begin
ss:=ExtractFileDir(application.ExeName);
if copy(ss,length(ss),1)<>'/' then ss:=ss+'/';
if not fileexists(ss+'/data/wzgl.mdb') then
begin
application.MessageBox('找不到wzgl数据库!','错误信息',48);
application.Terminate;
exit;
end;
try
adodb.close;
s:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+ss+'data/wzgl.mdb';
s:=s+';Persist Security Info=false';
adodb.ConnectionString:=s;
adodb.Open();
except
try
adodb.close;
s:='Provider=Microsoft.Jet.OLEDB.3.51;Data Source='+ss+'data/wzgl.mdb';
s:=s+';Persist Security Info=False';
adodb.ConnectionString:=s;
adodb.Open();
except
on e:exception do
begin
application.MessageBox(pchar('无法连接数据库!'+#13+#13+e.Message),'错误信息',16);
application.Terminate;
exit;
end;
end;
end;
end;
 
奇怪的问题。
我用4.0打开却无法修改数据。
机子装的是office2000,驱动应该是4.0吧?

用dsn却没问题
 
to 荷塘新月:
抛开这些问题不说,我觉得应该先试3.51
因为用3.51不能打开4.0的access,但4.0却可以打开3.51的,虽然可以打开,却不能够修改。
 
给你一个例子:
我试了,先将loginprompt设为false!

procedure TForm1.FormCreate(Sender: TObject);
begin
AdoConn.Connected:=False;
AdoConn.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Password="";User ID=admin;Data Source=';
AdoConn.ConnectionString:=AdoConn.ConnectionString+'d:/ipcard.mdb'+';';
AdoConn.ConnectionString:=AdoConn.ConnectionString+'Mode=Share Deny None;Extended Properties="";Locale Identifier=1028;Jet OLEDB:System database="";';
AdoConn.ConnectionString:=AdoConn.ConnectionString+'Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;';
AdoConn.ConnectionString:=AdoConn.ConnectionString+'Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;';
AdoConn.ConnectionString:=AdoConn.ConnectionString+'Jet OLEDB:Don''t Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False;';
AdoConn.Connected:=True;
end;
 
补充:
AdoConn:TAdoConnection
^_^
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部