Parametry:
-sServerName - nazwa serwera zdalnego (z instancją)
-sUserName - nazwa użytkownika
-sUserPwd - hasło użytkownika
- bLog - zapis do pliku log
Wartości zwracane:
-1 - nie udało się pobrać wersji serwera
80 - SQL2000
90 - SQL2005
100 -SQL2008
function int GetRemoteSQLVersion(sServerName, sUserName, sUserPwd, bLog)
OBJECT objConn, objRST;
STRING sConnString;
STRING szADOConnObjID;
STRING sSQL,szVersion, szVer;
int nResult;
begin
nResult = -1;
sConnString = "Driver={SQL Server};Persist Security Info=False;";
sConnString = sConnString + "server=" + sServerName + ";";
sConnString = sConnString + "uid=" + sUserName + ";";
sConnString = sConnString + "pwd=" + sUserPwd + ";";
sConnString = sConnString + "database=master";
sSQL = "SELECT SERVERPROPERTY('ProductVersion') AS ProductVersion";
try
if (bLog) then WriteLog(0,"* Odczyt wersji Serwera SQL..."); endif;
szADOConnObjID = "ADODB.Connection";
set objConn = CreateObject(szADOConnObjID);
if (IsObject(objConn)) then
objConn.ConnectionString = sConnString;
//objConn.CommandTimeout = 999999;
objConn.Open;
set objRST = objConn.Execute(sSQL);
szVersion = objRST("ProductVersion");
if (StrLength(szVersion)>0) then
StrSub(szVer,szVersion,0,StrFind(szVersion,"."));
switch (szVer)
case "8" : nResult=80; if (bLog) then WriteLog(1,"- Serwera SQL 2000"); endif;
case "9" : nResult=90; if (bLog) then WriteLog(1,"- Serwera SQL 2005"); endif;
case "10": nResult=100;if (bLog) then WriteLog(1,"- Serwera SQL 2008"); endif;
endswitch;
endif;
objConn.Close;
endif;
set objConn = NOTHING;
set objRST = NOTHING;
catch
if (bLog) then WriteLog(1," - Nie można uzyskać połączenia z bazą master na
użytkownika \""+sUserName+"\""); endif;
endcatch;
return nResult;
end;
Brak komentarzy:
Prześlij komentarz