Monday, July 31, 2006
動態建立ODBC
procedure _RunTimeCreateOdbcAliasForSybase(sOdbcAlias_,sDBName_,sDbIP_,sUserName_ : String);
var
Reg : TRegistry;
sErrMsg : String;
begin
try
try
Reg := TRegistry.Create;
Reg.RootKey := HKEY_LOCAL_MACHINE;
if Reg.OpenKey('\Software\ODBC\',True) then begin
Reg.OpenKey('\Software\ODBC\ODBC.INI\ODBC Data Sources',True);
Reg.WriteString('TestSybase2','Sybase ASE ODBC Driver'); //Create ODBC Alias
Reg.OpenKey('\Software\ODBC\ODBC.INI\'+'TestSybase2',True);
Reg.WriteString('Database','MyDatabase');
Reg.WriteString('Description','for Test');
Reg.WriteString('Driver', 'C:\Sybase\ODBC\SYODASE.dll');
Reg.WriteString('NetworkAddress', '192.168.10.100,5000');
Reg.WriteString('NetworkLibraryName','Winsock' );
end;
Reg.CloseKey;
except
on E:Exception do begin
sErrMsg := Format('建立新的 ODBC Alias 時發生錯誤!...%s',[E.message]);
Application.MessageBox(PChar(sErrMsg),'錯誤訊息',MB_ICONError);
raise Exception.Create(sErrMsg); //throw this exception obj
end;
end;
finally
Reg.Free;
end;
end;//_RunTimeCreateOdbcAliasForSybase();
var
Reg : TRegistry;
sErrMsg : String;
begin
try
try
Reg := TRegistry.Create;
Reg.RootKey := HKEY_LOCAL_MACHINE;
if Reg.OpenKey('\Software\ODBC\',True) then begin
Reg.OpenKey('\Software\ODBC\ODBC.INI\ODBC Data Sources',True);
Reg.WriteString('TestSybase2','Sybase ASE ODBC Driver'); //Create ODBC Alias
Reg.OpenKey('\Software\ODBC\ODBC.INI\'+'TestSybase2',True);
Reg.WriteString('Database','MyDatabase');
Reg.WriteString('Description','for Test');
Reg.WriteString('Driver', 'C:\Sybase\ODBC\SYODASE.dll');
Reg.WriteString('NetworkAddress', '192.168.10.100,5000');
Reg.WriteString('NetworkLibraryName','Winsock' );
end;
Reg.CloseKey;
except
on E:Exception do begin
sErrMsg := Format('建立新的 ODBC Alias 時發生錯誤!...%s',[E.message]);
Application.MessageBox(PChar(sErrMsg),'錯誤訊息',MB_ICONError);
raise Exception.Create(sErrMsg); //throw this exception obj
end;
end;
finally
Reg.Free;
end;
end;//_RunTimeCreateOdbcAliasForSybase();