function BOOL SetFixedPortMS(sInstancja,sPort,bLog)
string sKey,sValue,sData,sKatInstancji;
number nResult,nResult1,nResult2,nType,nSize;
BOOL bSET;
begin
Disable(LOGGING);
bSET=FALSE;
RegDBSetDefaultRoot( HKEY_LOCAL_MACHINE );
sKey="Software\\Microsoft\\Microsoft SQL Server\\"+sInstancja+"\\Setup";
nType = REGDB_STRING_MULTI;
nSize = 255;
if (RegDBKeyExist(sKey)=1) then
sValue = "SQLPath";
nResult = RegDBGetKeyValueEx( sKey, sValue, nType, sData, nSize );
sKatInstancji = GetWord("" ^ sData,0);
sPort = GetDynamicPort(sInstancja,bLog); //Pobierz dynamiczny Port
if (bLog) then WriteLog(1,"Ustawienie stałego portu TCP na nr : "+sPort); endif;
sKey = "Software\\Microsoft\\Microsoft SQL Server\\"+sKatInstancji+"\\MSSQLServer\\SuperSocketNetLib\\Tcp\\IPAll";
if (RegDBKeyExist(sKey)=1) then
sValue = "TcpPort";
nResult = RegDBSetKeyValueEx ( sKey, sValue, nType, sPort, nSize );
sValue = "TcpDynamicPorts";
nResult1 = RegDBSetKeyValueEx ( sKey, sValue, nType, "", nSize );
else
if (bLog) then WriteLog(2,"- nie ustawiono. Brak klucza TCP przy katalogu instancji"); endif;
bSET = FALSE; //Nieznaleziono wpisu o kluczu TCP/IP
endif;
//Ustawienie dla pozostalych TCP portow stalych
sKey = "Software\\Microsoft\\Microsoft SQL Server\\"+sKatInstancji+"\\MSSQLServer\\SuperSocketNetLib\\Tcp\\IP1";
if (RegDBKeyExist(sKey)=1) then
sValue = "TcpPort";
RegDBSetKeyValueEx ( sKey, sValue, nType, sPort, nSize );
sValue = "TcpDynamicPorts";
RegDBSetKeyValueEx ( sKey, sValue, nType, "", nSize );
endif;
sKey = "Software\\Microsoft\\Microsoft SQL Server\\"+sKatInstancji+"\\MSSQLServer\\SuperSocketNetLib\\Tcp\\IP2";
if (RegDBKeyExist(sKey)=1) then
sValue = "TcpPort";
RegDBSetKeyValueEx ( sKey, sValue, nType, sPort, nSize );
sValue = "TcpDynamicPorts";
RegDBSetKeyValueEx ( sKey, sValue, nType, "", nSize );
endif;
sKey = "Software\\Microsoft\\Microsoft SQL Server\\"+sInstancja+"\\MSSQLServer\\SuperSocketNetLib\\Tcp";
if (RegDBKeyExist(sKey)=1) then
sValue = "TcpPort";
nResult2 = RegDBSetKeyValueEx ( sKey, sValue, nType, sPort, nSize );
else
if (bLog) then WriteLog(2,"- nie ustawiono stałego portu. Brak klucza rejestru TCP przy instancji"); endif;
bSET = FALSE; //Nieznaleziono wpisu o kluczu TCP/IP
endif;
if (nResult=0)&&(nResult1=0)&&(nResult2=0) then
if (bLog) then WriteLog(2,"- ustawiono stały port na : "+sPort); endif;
bSET = TRUE;
else
if (bLog) then WriteLog(2,"- wystąpił błąd przy ustawieniu stałego port na : "+sPort); endif;
endif;
else
if (bLog) then WriteLog(2,"- nie ustawiono stałego portu. Brak wpisu o instancji"); endif;
bSET = FALSE; //Nieznalezniono wpisu o zainstalowanej Instancji
endif;
Enable(LOGGING);
return bSET;
end;
Programowanie c++/c#/delphi/javas/php/installscript/nativescript
Przykłady - przydatne funkcje
czwartek, 29 października 2009
Ustawienie stałego portu dla wybranej instancji serwera MSSQL 2005
Funkcja pobiera dynamicznie ustawiony Port przez serwer SQL i przypisuje go jako stały
Etykiety:
InstallShield - SQL
Subskrybuj:
Komentarze do posta (Atom)
Brak komentarzy:
Prześlij komentarz