在线等待 动态设置ODBC数据源?? 如何动态设置ODBC数据源? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 unit demo1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,Registry;type TForm1 = class(TForm) Label1: TLabel; Label2: TLabel; Edit1: TEdit; Edit2: TEdit; Button1: TButton; memo1: TMemo; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);varregisterTemp : TRegistry;bData : array[ 0..0 ] of byte;beginregisterTemp := TRegistry.Create; //建立一个Registry实例with registerTemp dobeginRootKey:=HKEY_LOCAL_MACHINE;//设置根键值为HKEY_LOCAL_MACHINE//找到Software\ODBC\ODBC.INI\ODBC Data Sourcesif OpenKey('Software\ODBC\ODBC.INI\ODBC Data Sources',True) thenbegin //注册一个DSN名称WriteString( 'MyAccess', 'Microsoft Access Driver (*.mdb)' );endelsebegin//创建键值失败memo1.lines.add('增加ODBC数据源失败');exit;end;CloseKey;//找到或创建Software\ODBC\ODBC.INI\MyAccess,写入DSN配置信息if OpenKey('Software\ODBC\ODBC.INI\MyAccess',True) thenbeginWriteString( 'DBQ', edit2.text );//数据库目录WriteString( 'Description', '我的数据库设置' );//数据源描述WriteString( 'Driver', 'C:\WINNT\SYSTEM32\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 );//非只读方式endelse//创建键值失败beginmemo1.lines.add('增加ODBC数据源失败');exit;end;CloseKey;//找到或创建Software\ODBC\ODBC.INI\MyAccess\Engines\Jet//写入DSN数据库引擎配置信息if OpenKey('Software\ODBC\ODBC.INI\MyAccess\Engines\Jet',True) thenbeginWriteString( 'ImplicitCommitSync', 'Yes' );WriteInteger( 'MaxBufferSize', 512 );//缓冲区大小WriteInteger( 'PageTimeout', 10 );//页超时WriteInteger( 'Threads', 3 );//支持的线程数目WriteString( 'UserCommitSync', 'Yes' );endelse//创建键值失败beginmemo1.lines.add('增加ODBC数据源失败');exit;end;CloseKey;memo1.lines.add('增加新ODBC数据源成功');Free;end;end;end. 如何判断Popupmenu当前是否处于活动状态? 关于 TQUERY字段的change事件, 如何设置按钮的底色及如何在按钮上加图片,并使按钮上的字显示在图片上。高手请帮忙。 想学delphi,可同学说C#都能做到!!! 俺今天辞职,散分!!! 一个问题有关activex form的! 线程的临界区的问题 TDrawGrid问题 delphi数据库安全登录问题(高手请进!!!!!!!) 谁帮我提前帖子我给谁分!绝不食言! 捕获视频 哪位兄弟帮帮小弟在无锡找个工作啊!我请喝酒!!!!!!!!!!!!!!!!!
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,Registry;type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
memo1: TMemo;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
registerTemp : TRegistry;
bData : array[ 0..0 ] of byte;
begin
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//创建键值失败
memo1.lines.add('增加ODBC数据源失败');
exit;
end;
CloseKey;//找到或创建Software\ODBC\ODBC.INI\MyAccess,写入DSN配置信息
if OpenKey('Software\ODBC\ODBC.INI\MyAccess',True) then
begin
WriteString( 'DBQ', edit2.text );//数据库目录
WriteString( 'Description', '我的数据库设置' );//数据源描述
WriteString( 'Driver', 'C:\WINNT\SYSTEM32\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
memo1.lines.add('增加ODBC数据源失败');
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
memo1.lines.add('增加ODBC数据源失败');
exit;
end;
CloseKey;
memo1.lines.add('增加新ODBC数据源成功');
Free;
end;
end;end.