现在我在做一个系统,要用到ACCESS和DELPHI
但是我在ODBC里连接了很多次,但是每次都连接不上。
希望各位大虾,能告诉我关于DELPHI 和 ACCESS怎样连接。
ACCESS2000 不是ACCESS97 好象97 的可以用BDE连接
2000就要用到ODBC
但是我在ODBC里连接了很多次,但是每次都连接不上。
希望各位大虾,能告诉我关于DELPHI 和 ACCESS怎样连接。
ACCESS2000 不是ACCESS97 好象97 的可以用BDE连接
2000就要用到ODBC
你可以用一个test.udl测试一下,能不能连接上access数据库!
如果可以,那肯定是你的字符串的问题!
选择驱动完选择数据库文件路径
测试成功不?
函数代码如下:
其中参数:aDSN代表ODBC中你设置的数据源的名字,aDBName就是你连接的ACCESS数据库文件的名字
function ConfigAccessODBC(aDSN: string; aDBName: string): boolean;
var
reg: TRegistry;
bData: array[0..0] of byte;
DrvPath: string;
begin
reg := TRegistry.Create;
with reg do
begin
RootKey := HKEY_LOCAL_MACHINE;
if OpenKey('SOFTWARE\ODBC\ODBCINST.INI\Microsoft Access Driver (*.mdb)', false) then
begin
DrvPath := ReadString('Driver');
end
else
begin //创建键值失败
ShowMessage('公共信息' + ':' + chr(10) + chr(10) + '您没有正确安装驱动程序Microsoft Access Driver (*.mdb),请重新安装!');
ConfigAccessOdbc := false;
exit;
end;
Reg.CloseKey;
//找到Software\ODBC\ODBC.INI\ODBC Data Sources
if OpenKey('Software\ODBC\ODBC.INI\ODBC Data Sources', True) then
begin
WriteString(aDSN, 'Microsoft Access Driver (*.mdb)');
end
else
begin //创建键值失败
application.MessageBox('公共信息' + ':' + chr(10) + chr(10) + '配置ODBC数据源失败!', '错误信息', mb_applmodal + mb_iconerror + mb_ok + mb_defbutton1);
ConfigAccessOdbc := false;
exit;
end;
CloseKey;
//找到或创建Software\ODBC\ODBC.INI\msac_infodb,写入DSN配置信息
if OpenKey('Software\ODBC\ODBC.INI\' + aDSN, True) then
begin
WriteString('DBQ', aDBName); //数据库目录,连接您的数据库
WriteString('Description', '系统信息数据库数据源'); //数据源描述
//WriteString( 'Driver', 'C:\WINNT\System32\odbcjt32.dll' );
WriteString('Driver', DrvPath); //驱动程序DLL文件
WriteInteger('DriverId', 25); //驱动程序标识
WriteString('FIL', 'Ms Access;'); //Filter依据
WriteInteger('SafeTransaction', 0); //支持的事务操作数目
WriteString('UID', ''); //用户名称
bData[0] := 0;
WriteBinaryData('Exclusive', bData, 1); //非独占方式
WriteBinaryData('ReadOnly', bData, 1); //非只读方式
end
else //创建键值失败
begin
application.MessageBox('公共信息' + ':' + chr(10) + chr(10) + '配置ODBC数据源失败!', '错误信息', mb_applmodal + mb_iconerror + mb_ok + mb_defbutton1);
ConfigAccessOdbc := false;
exit;
end;
CloseKey;
//找到或创建Software\ODBC\ODBC.INI\msac_infodb\Engines\Jet
//写入DSN数据库引擎配置信息
if OpenKey('Software\ODBC\ODBC.INI\' + aDSN + '\Engines\Jet', True) then
begin
WriteString('ImplicitCommitSync', 'Yes');
WriteInteger('MaxBufferSize', 512); //缓冲区大小
WriteInteger('PageTimeout', 10); //页超时
WriteInteger('Threads', 3); //支持的线程数目
WriteString('UserCommitSync', 'Yes');
end
else //创建键值失败
begin
application.MessageBox('公共信息' + ':' + chr(10) + chr(10) + '配置ODBC数据源失败!', '错误信息', mb_applmodal + mb_iconerror + mb_ok + mb_defbutton1);
ConfigAccessOdbc := false;
exit;
end;
CloseKey;
ConfigAccessOdbc := True;
Free;
end;
end;
该怎么搞了,请教,我用ODBC时的用户名是admin 密码是为空
但还是不行,至于那位老兄所说的注册,实在是太恐怖拉,
多谢拉 各位!!!