procedure Tfrm_main.btn_ODBCConfClick (Sender: TObject);
var
RegF: TRegistry;
AliasName: string;
AliasPara: string;
mybuffer : pchar;
x: longint;
mysyspath: string;
myservername: string;
myservernameVal: string;
begin
try //配置ODBC yy为ODBC数据源名称
RegF := TRegistry.Create ;
try
RegF.RootKey := HKEY_LOCAL_MACHINE;
begin
RegF.OpenKey('SOFTWARE\ODBC\ODBC.INI\yy',true);
RegF.Writestring('AnsiNPW', 'No');
RegF.Writestring('Database', trim(edt_database.text));
RegF.Writestring('Description', '医疗保健信息综合管理系统');
try //得到sqlsrv32.dll路径
mybuffer := allocmem(255);
x := GetSystemDirectory(mybuffer, 255);
mysyspath := string(mybuffer);
freemem(mybuffer);
mysyspath := mysyspath+'\sqlsrv32.dll';
except
mysyspath := 'C:\WINDOWS\SYSTEM\sqlsrv32.dll';
end;
RegF.Writestring('Driver', mysyspath);
RegF.Writestring('LastUser', 'Sa');
RegF.Writestring('QuotedId', 'No');
if rbtn_server.Checked = true then
begin
myservername := trim(edt_server.text);
end
else
begin
myservername := '(local)';
end;
RegF.Writestring('Server', myservername);
RegF.Closekey;
RegF.OpenKey('SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources', true);
RegF.Writestring('yy', 'SQL Server');
RegF.Closekey;
RegF.OpenKey('SOFTWARE\microsoft\MSSQLServer\Client\ConnectTo', true);
if rbtn_server.Checked = true then
begin
myservername := trim(edt_server.text);
end
else
begin
myservername := '.';
end;
myservernameVal := 'DBMSSOCN,'+myservername+',1433';
RegF.Writestring(myservername, myservernameVal);
end;
finally
RegF.Closekey;
RegF.Free ;
Application.MessageBox('配置ODBC成功!', '配置ODBC', MB_ICONINFORMATION +MB_OK);
end;
except
Application.MessageBox('配置ODBC不成功!', '配置ODBC', MB_ICONINFORMATION+MB_OK);
end;
end;