请问如何动态设置ODBC,我的数据库名为DB1.MDB,用的是ACCESS数据库.
数据源为sun,数据库的用户名和密码为空。请问用代码如何实现。多谢。
数据源为sun,数据库的用户名和密码为空。请问用代码如何实现。多谢。
解决方案 »
- 想创建一个打印到A4纸张基本不变形的BitMap,尺寸问题怎么处理?
- 使用delphi2010编写SOAP的问题,从服端获取图片提示53错误
- 300分,请教高手,如果用DELPHI将数据导入到EXCEL里面后做柱状图?
- 未解决的问题!!
- 页合计!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- 能不能将数据就保存到本应用程序的 exe 文件!
- TIdTCPServer在Execute时自动退出
- ^^^^^^^^^^^^^散分^^^^^^^^^^^
- 高手指教,关于quary.edit的问题?
- 那里能DOWN到大富翁的离线数据库啊?
- 如何对数据库的某个字段进行批量修改????????????????????????
- 帖几个QQ常用rtf代码,祝大家开心^-^
看看他吧:)
procedure TDM.CreateDSN;
var
registerTemp : TRegistry;
bData : array[ 0..0 ] of byte;
SysDir : array[0..255] of char;
Str : String;
begin
str:=ExtractFileDir(application.exename)+'\userinfo.mdb';
registerTemp := TRegistry.Create;
registerTemp := TRegistry.Create; //建立一个Registry实例
with registerTemp 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( 'MyAccess', 'Microsoft Access Driver (*.mdb)' );
end
else
begin//创建键值失败
showmessage('增加ODBC数据源失败');
exit;
end;
CloseKey; //找到或创建Software\ODBC\ODBC.INI\MyAccess,写入DSN配置信息
if OpenKey('Software\ODBC\ODBC.INI\MyAccess',True) then
begin
GetSystemDirectory(SysDir,sizeof(SysDir)-1);//得到系统路径
WriteString( 'DBQ',str );//数据库目录
WriteString( 'Description', '我的新数据源' );//数据源描述
WriteString( 'Driver', SysDir+'\odbcjt32.dll' );//驱动程序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
exit;
end;
CloseKey; //找到或创建Software\ODBC\ODBC.INI\MyAccess\Engines\Jet
//写入DSN数据库引擎配置信息
if OpenKey('Software\ODBC\ODBC.INI\MyAccess\Engines\Jet',True) then
begin
WriteString( 'ImplicitCommitSync', 'Yes' );
WriteInteger( 'MaxBufferSize', 512 );//缓冲区大小
WriteInteger( 'PageTimeout', 10 );//页超时
WriteInteger( 'Threads', 3 );//支持的线程数目
WriteString( 'UserCommitSync', 'Yes' );
end
else//创建键值失败
begin
exit;
end;
CloseKey;
Free;
end;