środa, 28 października 2009

Pobranie dynamicznego numeru portu przydzielonego do instancji MSSQL


function string GetDynamicPort(sInstancja,bLog)
string sKey, sValue, sData;
string sMsg,sKatInstancji, Port;
number nType, nSize, nResult;
begin
Port="";
RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);
sKey="Software\\Microsoft\\Microsoft SQL Server\\"+sInstancja+"\\Setup";
if (RegDBKeyExist(sKey)=1) then
sValue = "SQLPath";
nResult = RegDBGetKeyValueEx( sKey, sValue, nType, sData, nSize );
sKatInstancji = GetWord("" ^ sData,0);
//Port
sKey = "Software\\Microsoft\\Microsoft SQL Server\\"+sKatInstancji+"\\MSSQLServer\\SuperSocketNetLib\\Tcp\\IPAll";
if (RegDBKeyExist(sKey)=1) then
nType = REGDB_STRING_MULTI;
sValue = "TcpDynamicPorts";
nResult = RegDBGetKeyValueEx( sKey, sValue, nType, sData, nSize );
if( nResult = 0 ) then
if (StrLength(sData)>1) then
Port=sData;
else
if (bLog) then WriteLog(2,"port dynamiczny nie przydzielony do instancji : "+sInstancja); endif;
endif;
endif;
else
if (bLog) then WriteLog(2,"brak klucza rejestru z przydzielonymi portami dynamicznymi"); endif;
endif;
else
if (bLog) then WriteLog(2,"brak klucza rejestru z instancją : "+sInstancja); endif;
endif;
return Port;
end;

Brak komentarzy:

Prześlij komentarz