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