📄 unit1.pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, DBTables;
type
TForm1 = class(TForm)
Button1: TButton;
Table1: TTable;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
USES Registry;
{$R *.dfm}
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( 'myodbc', 'Microsoft Access Driver (*.mdb)' );
end
else
begin//创建键值失败
SHOWMESSAGE('增加ODBC数据源失败');
exit;
end;
CloseKey;
//找到或创建Software\ODBC\ODBC.INI\myaccess97,写入DSN配置信息
if OpenKey('Software\ODBC\ODBC.INI\myodbc',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 写入DSN数据库引擎配置信息
if OpenKey('Software\ODBC\ODBC.INI\myaccess97\Engines\Jet',True)
then
begin
WriteString( 'ImplicitCommitSync', 'Yes' ); //表示是否立即反映数据修改
WriteInteger( 'MaxBufferSize', 512 );//缓冲区大小
WriteInteger( 'PageTimeout', 20 );//页超时
WriteInteger( 'Threads', 5 );//支持的线程数目
WriteString( 'UserCommitSync', 'Yes' ); //表示是否立即将数据修改反映到用户
end
else//创建键值失败
begin
showmessage('增加ODBC数据源失败');
exit;
end;
CloseKey;
showmessage('增加新ODBC数据源成功');
Table1.DatabaseName:='myodbc';
Table1.TableName:='test.mdb';
Table1.FieldDefs.Add('Name',ftString,8,True);
Table1.FieldDefs.Add('sex',ftString,8,True);
Table1.FieldDefs.Add('age',ftString,8,True);
Table1.CreateTable;
//Free;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -