菜鸟问:关于delphi访问access的问题。

freeheartgy8 2003-08-20 10:08:41
我用ole db 的方式连接了odbc数据源,但是有个问题:
odbc的数据源是事先在控制面板里设置好了的,程序的移植性不强,我想请教一下那位大虾知道用程序的方法修改或者设置odbc数据源。
...全文
31 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhoutian618 2003-08-20
  • 打赏
  • 举报
回复
UP
OO_is_just_P 2003-08-20
  • 打赏
  • 举报
回复
不用配odbc。在除了98的机子上可以直接用,动态连接如下:
Try
MainConnection.ConnectionString :='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.\DB\UniCom.mdb;Mode=Share Deny None;';
MainConnection.Connected :=True;
Except
Application.MessageBox('不能连接到系统数据库!','错误',MB_OK OR MB_ICONERROR);
Application.Terminate;
end;
xwy55555 2003-08-20
  • 打赏
  • 举报
回复
dephi 中有很多ADO组件的呀,用起来很方便,有ADO组件面板上
cnhgj 2003-08-20
  • 打赏
  • 举报
回复
AdoConnection连接最方便
Shiyl 2003-08-20
  • 打赏
  • 举报
回复
有个例子可以参考
USES Registry;

procedure TForm1.Button1Click(Sender: TObject);
var
Temp : TRegistry;
bData : array[ 0..0 ] of byte;
begin
Temp := TRegistry.Create; //建立一个Registry实例
with Temp do
begin
RootKey:=HKEY_LOCAL_MACHINE; //设置根键值为HKEY_LOCAL_MACHINE

//打开键名 software\ODBC\ODBC.INI\ODBC Data Sources,不存在则建立

if OpenKey('Software\ODBC\ODBC.INI\ODBC Data Sources',True) then

begin //注册一个DSN名称
WriteString( 'myaccess97', 'Microsoft Access Driver (*.mdb)' );

end
else
begin//创建键值失败
SHOWMESSAGE('增加ODBC数据源失败');
exit;
end;
CloseKey;

//找到或创建Software\ODBC\ODBC.INI\myaccess97,写入DSN配置信息
if OpenKey('Software\ODBC\ODBC.INI\myaccess97',True) then
begin
WriteString( 'DBQ', 'C:\test.mdb' );//数据库目录
WriteString( 'Description','我的新数据源' );//数据源描述
WriteString( 'Driver', 'C:\WINDOWS\SYSTEM\odbcjt32.dll' );//驱
动程序DLL文件 ODBCJT32.DLL文件依据你的存放路径
WriteInteger( 'DriverId', 25 ); //驱动程序标识
WriteString( 'FIL', 'Ms Access;' );
//Filter依据
WriteInteger( 'SafeTransaction', 0 ); //支持的事务操作数目

//若不存在用户,则为下面一句:
WriteString( 'UID', '' );//用户名称,若存在用户,则写入用户名
//若存在用户和密码,则为下面二句:
WriteString( 'UID', 'hns' ); //用户名
WriteString( 'PWD', '199911' );//口令
bData[0] := 0;
WriteBinaryData( 'Exclusive', bData, 1 ); //是否以独占方式打
开,1为是,默认为0
WriteBinaryData( 'ReadOnly', bData, 1 ); //是否以只读方式打
开,1为是,默认为0
end
else//创建键值失败
begin
showmessage('增加ODBC数据源失败');
exit;
end;
CloseKey;
// 找到或创建Software\ODBC\ODBC.INI\myaccess97\Engines\Jet 写入D
SN数据库引擎配置信息
if OpenKey('Software\ODBC\ODBC.INI\myaccess97\Engines\Jet',True)
then
begin
WriteString( 'ImplicitCommitSync', 'Yes' ); //表示是否立即反映数
据修改
WriteInteger( 'MaxBufferSize', 512 );//缓冲区大小
WriteInteger( 'PageTimeout', 10 );//页超时
WriteInteger( 'Threads', 3 );//支持的线程数目
WriteString( 'UserCommitSync', 'Yes' ); //表示是否立即将数据修改
反映到用户
end
else//创建键值失败
begin
showmessage('增加ODBC数据源失败');
exit;
end;
CloseKey;
showmessage('增加新ODBC数据源成功');
Free;
end;
end;


OO_is_just_P 2003-08-20
  • 打赏
  • 举报
回复
直接用AdoConnection连接。引擎是:Provider=Microsoft.Jet.OLEDB.4.0
OO_is_just_P 2003-08-20
  • 打赏
  • 举报
回复
delphi中直接用Ado连接,引擎是Provider=Microsoft.Jet.OLEDB.4.0。

2,496

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧