给一段代码给你看看,可以创建用户和系统ODBC,数据库用的是SQL SERVER7
procedure TForm1.Button1Click(Sender: TObject);
var
ls_dsn,ls_database,ls_desc,ls_login_id,ls_server_ip:string;
lbl_user_dsn:boolean; // true-->user_dsn,false-->system dsn
registerTemp : TRegistry;
begin
//判断用户输入的信息是否正确
ls_dsn:=trim(dsn_edit.text); //取得数据源名
ls_database:=trim(database_edit.text); //取得数据库名
ls_desc:=trim(desc_edit.text); //取得描述名
ls_login_id:=trim(login_id_edit.text); //取得用户名
//取得数据库所在的IP地址
ls_server_ip:=server_ip_Edit.text;
//判断数据源名是否合法
if ls_dsn='' then
begin
showmessage('请输入数据源名');
dsn_edit.SetFocus ;
exit;
end;
//判断数据库名是否合法
if ls_database='' then
begin
showmessage('请输入要连接的数据库名');
database_edit.SetFocus ;
exit;
end;
//判断用户名是否合法
if ls_login_id='' then
begin
showmessage('请输入用户名');
login_id_edit.SetFocus ;
exit;
end;
//判断服务器IP地址是否合法
if ls_server_ip='0.0.0.0' then
begin
showmessage('请输入服务器IP地址');
server_ip_ipedit.SetFocus ;
exit;
end;
registerTemp := TRegistry.Create; //建立一个Registry实例
with registerTemp do
begin
if userdsn_radiobutton.Checked then
RootKey:=HKEY_CURRENT_USER //设置根键值为HKEY_CURRENT_USER
else
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( ls_dsn, 'SQL Server' );
end
else
begin//创建键值失败
memo1.lines.add('增加ODBC数据源失败'+#13+formatdatetime('yyyy-mm-dd hh:mm:ss',now));
exit;
end;
CloseKey;
//找到或创建Software/ODBC/ODBC.INI/MyAccess,写入DSN配置信息
if OpenKey('Software/ODBC/ODBC.INI/'+ls_dsn,True) then
begin
WriteString( 'Database',ls_database);//数据库
WriteString( 'Description',ls_desc);//数据源描述
WriteString( 'Driver', 'C:/windows/SYSTEM/sqlsrv32.dll' );//驱动程序DLL文件
Writestring( 'LastUser',ls_login_id);//
WriteString( 'Server', ls_server_ip);//用户名称
end
else//创建键值失败
begin
memo1.lines.add('增加ODBC数据源失败'+#13+#10+formatdatetime('yyyy-mm-dd hh:mm:ss',now));
exit;
end;
CloseKey;
showmessage('已成功创建新的ODBC数据源');
memo1.lines.add('已成功创建新的ODBC数据源'+#13+#10+formatdatetime('yyyy-mm-dd hh:mm:ss',now));
Free;
end;
end;