2,497
社区成员
发帖
与我相关
我的任务
分享
GetWindowsDirectory(buffer, SizeOf(buffer));
r:=tregistry.create;
with r do
begin
rootkey:=hkey_local_machine;
if openkey('software\odbc\odbc.ini\odbc data sources',true) then
begin
writestring('lz','Microsoft Access Driver (*.mdb)');
end;
closekey;
if openkey('software\odbc\odbc.ini\CWB',true) then
begin
writestring('DataBase','lz');
writestring('DRIVER','C:\WINDOWS\system32\sqlsrv32.dll');
WriteInteger('LastUser','sa');
writestring('Server','(local)');
end;
closekey;
free;
end;
function GetConnString(DBKind,DBName: String): String; // 取数据库连接串
var
MachineName: string;
begin
if DBKind='ACCESS' then // ACCESS 库
Result := 'Provider=Microsoft.JET.OLEDB.4.0;'+
'Persist Security Info=True;Mode=Share Deny None;'+
'Data Source='+_DIR_APP+DBName+'.mdb;'+
'User ID=Admin; Jet OLEDB:Database Password='+_ACCESS_PSW
else begin
if Copy(_IP_ADDRESS,1,3) = '127' then
GetNameByIPAddr(_IP_ADDRESS,MachineName) // 转换为机器名访问SQL SERVER 服务器
else
MachineName := _IP_ADDRESS; // 由于单机下访问 SQL SERVER 服务器失败,故做转换
Result := 'Provider=SQLOLEDB.1;'+
'Persist Security Info=True;' +
'Initial Catalog=' + DBName + ';'+
'Data Source=' + MachineName + ';'+
'User ID=' + _LOGIN_USER + '; PASSWORD=' + _LOGIN_PSW
end;
end;
function GetNameByIPAddr(IPAddr: string;var MacName: string): boolean;
var
SockAddrIn: TSockAddrIn;
HostEnt: PHostEnt;
WSAData: TWSAData;
begin
Result := False;
if IpAddr = '' then exit;
try
WSAStartup(2, WSAData);
SockAddrIn.sin_addr.s_addr := inet_addr(PChar(IPAddr));
HostEnt := gethostbyaddr(@SockAddrIn.sin_addr.S_addr, 4, AF_INET);
if HostEnt <> nil then MacName := StrPas(Hostent^.h_name);
Result := True;
finally
WSACleanup;
end;
end;