piątek, 14 stycznia 2011

Pobranie wielkości bazy MSSQL

Funkcja pobiera wielkość bazy odczytując wielkość pliku z serwera MSSQL bazy
function BOOL GetDataBaseSize(sQuery, sValueName, sValue, sServerName, sDBName, sDBFileName, sDriver, bTrustedConn, sUserName, sUserPwd, bLog)
 OBJECT objConn, objRST;     
 STRING  szADOConnObjID;
 STRING sTekst, sConnString;
 BOOL bReturn;
begin
 bReturn = FALSE;  
    if (sDriver == "") then
     sConnString = "Provider=sqloledb;";
    else
     sConnString = "Driver={" + sDriver + "};";
    endif;

 if (bTrustedConn) then
     sConnString = sConnString + "server=" + sServerName + ";";
       sConnString = sConnString + "database=" + sDBName + ";";
     sConnString = sConnString + "Trusted_connection=Yes";
 else

     sConnString = sConnString + "server=" + sServerName + ";";
  sConnString = sConnString + "uid=" + sUserName + ";";
  sConnString = sConnString + "pwd=" + sUserPwd + ";";
  sConnString = sConnString + "database=" + sDBName;
 endif;
 

 szADOConnObjID = "ADODB.Connection";
 set objConn = CreateObject(szADOConnObjID);         
 if (IsObject(objConn)) then 
   objConn.ConnectionString = sConnString;
   objConn.Open;   
   set objRST = objConn.Execute("select sum(size)*8/1024 as size from sysfiles");     
   sValue = objRST(sValueName);                                         
 set objRST = objConn.Execute("select filename from sysfiles where filename like '%.mdf%' ");
 sDBFileName = objRST("filename");                                           
 objConn.Close;   
 bReturn  = TRUE;   
   
 else
     if (bLog) then WriteLog(1,"Nie moża utworzyć obiektu połączenia ADODB.Connection"); endif;  
 endif;
  
  set objConn = NOTHING;
  set objRST  = NOTHING;
 
 return (bReturn);
end;

Brak komentarzy:

Prześlij komentarz