delphi如何连接access数据库文件?(50分)

  • 主题发起人 restart0
  • 开始时间
R

restart0

Unregistered / Unconfirmed
GUEST, unregistred user!
俺用access建了个数据库,里面搞了个把表,现在我不知道如何用delphi连接它?
我一边耍QQ一面搞了1个多钟头了,不是我没有动手啊,不过我看还是来问一下比较快。
最好是ADO方式的。
SQL Explorer里面也有问题,说什么
cannot load an IDAPI service library file c:/……/DAO/DAO3032.DLL
 
先在控制面版的ODBC数据源建立对应你Access数据库的数据源,
然后利用ADO的连接字符串很容易就连接上,看看书。
 
用AdoConnection建立连接字符串
 
看书慢啊。restart0,还是像你这样好,先问了,再做了,再看书也不迟。
 
啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
你们为什么回答得这么快啊!!!!!!!!!!!1
我已经学会了啊!!!!!!!!!!!!!11
这么晚了你们为什么不睡觉啊!!!!!!!!!!!!!!!!
 
直接用ado连不就完了,为什么还要搞odbc
 
access的表有问题,我的一张表因为要不停的删除和增加记录,结果表有600M之大!!
后来只能用access中的压缩工具压缩,才100K

BTW:你有什么好办法在程序中压缩这样的数据库吗?
 
嗯~````50分啊,如今搞分不容易!我决定再附加一个小小小小的问题!!
哈哈哈哈
我是在ADO里用的Jet 4.0 OLE DB,然后直接选择了我的那个mdb文件,那到时候我用
Installshild Express做成安装文件的时候,需要注意什么问题呢,好做吗?
我的是NT,到时候要安装到98去
 
做安装文件不知道,不过你的数据库路径最好改成相对路径
那个access表大小的问题我也想知道
 
数据库连接
var
ConnectString:string;
begin
ac.Connected:=false;
ConnectString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;Persist Security Info=False;';
ConnectString:=format(connectstring,[‘这里输入你的路径’]);
AC.ConnectionString:=ConnectString;
try
AC.Connected:=true;
except
application.MessageBox('无法连接到数据库服务器,请检查设置数据库!', '提示',MB_ok + MB_DEFBUTTON1+MB_ICONEXCLAMATION);
exit;
end;
end;
在中文提示的地方输入你的数据库路径就可以了,你可以把路径保存到inf文件里
在做一个设计叫用户可以指定就不用担心路径的问题了。如果是放在同一目录下
可以写成
var
Pathdir:string;
s:string;
begin
Pathdir:=extractfilepath(application.ExeName);
s:=pthdir+'/数据库.mdb';
end
s就是数据库的路径了!

 
直接在程序中指定数据库的相对路径就行了,把数据库和程序放在一个目录下,
然后动态指定连接字符串,这样的话只需要ADO客户机有就行了,不需要其它的
步骤。
 
这个问题问得没水平,哎打字好累,这是你的第7个问题
ADO选JET引擎.
 
看来你也不太想费什么 力气 ,用 第三方控件好了

用 DiamondAccess 或 KADAO 好了.

省事. 对 ACCESS 的操作 也很方便 .
 
delphi连接access数据库的方法主要有以下几种:
一:利用delphi的BDE
二:利用ADO
三:利用第三放控件如kdao,diamond等
 
提醒:最后生成程序时,要将数据库组件的connected属性置为false
 
我看用ado是挺方便的事情,呵呵,而且又快
 
Access还是用DAO,ADO也不错
 
事实上就用BDE做一下就行了,很快的,配置下系统DSN OR 用户DSN就行了。也就所谓的ODBC
设置。
 
  在ADO控件组中添加一个adoconnection组件和一个adodataset组件,在程序中对
adoconnection的ConnectionString属性动态赋值:

var sdatasource:string;
begin
adoconnection1.Connected:=False;
sDataSource:=ExtractFileDir(ParamStr(0))+'/XXX.mdb';
                      ------->你的数据库名称
ADOconnection1.ConnectionString :=
'Provider=Microsoft.Jet.OLEDB.4.0;'+
'Data Source='+sDataSource+';'+
'Persist Security Info=False';
adoconnection1.Connected:=True;

再设置adodataset组件的connection属性为adoconnection1,commandtext属性为:
select * form xxx.mdb 即可
 
如果数据库有密码:
with ADOConnection1 do begin
close;
loginprompt:=false;
connectionstring:=
'Provider=Microsoft.Jet.OLEDB.4.0;'
+ 'password="";' //这是用户工作组(*.mdw)密码
+ 'User ID=Admin;' //这是用户工作组(*.mdw)用户名
+ 'Data Source=C:/JCWZ/data/jcwz.xyw;' +'Persist Security Info=True;'
+ 'Mode=Share Deny None;Extended Properties="";'
+ 'Jet OLEDB:System database="";' //这是用户工作组文件
+ 'Jet OLEDB:Registry Path="";'
+ 'Jet OLEDB:Database Password=xyw05158398050;' //这里才是数据库密码
+ 'Jet OLEDB:Engine Type=1;'
+ 'Jet OLEDB:Database Locking Mode=1;'
+ 'Jet OLEDB:Global Partial Bulk Ops=2;'
+ 'Jet OLEDB:Global Bulk Transactions=1;'
+ 'Jet OLEDB:New Database Password="";'
+ 'Jet OLEDB:Create System Database=False;'
+ 'Jet OLEDB:Encrypt Database=False;'
+ 'Jet OLEDB:Don''t Copy Locale on Compact=False;'
+ 'Jet OLEDB:Compact Without Replica Repair=False;'
+ 'Jet OLEDB:SFP=False';
connected:=true;
end;
 
顶部