środa, 28 października 2009

Funkcja sprawdzająca czy podana baza jest w użyciu


function BOOL DatabaseInUse(svServerName, svDatabaseName, svDriver, svUserName, svUserPassword, nWersja)
OBJECT pADOConnObj, pADORecordSetObj;
STRING szADOConnObjID, szADORecordSetObjID, szConnString, szSQL;
BOOL bExists;
begin
bExists = FALSE;
// Create ADO Connection Object to connect to the SQL server
szADOConnObjID = "ADODB.Connection";
set pADOConnObj = CreateObject(szADOConnObjID);

// Create the SQL string to complete the connection
szConnString = "driver={" + svDriver + "};";
szConnString = szConnString + "server=" + svServerName + ";";
szConnString = szConnString + "uid=" + svUserName + ";";
szConnString = szConnString + "pwd=" + svUserPassword + ";";
szConnString = szConnString + "database=master";

// Open the ADO Connection
pADOConnObj.Open(szConnString);

// Create ADO Recordset object for the return
szADORecordSetObjID = "ADODB.Recordset";
set pADORecordSetObj = CreateObject(szADORecordSetObjID);

// Set some ADO Recordset properties
pADORecordSetObj.CursorType = 3;
pADORecordSetObj.ActiveConnection = pADOConnObj;

// Create the SQL string to retrieve the database if it exists
if (nWersja=80) then
szSQL = "select s.name from sysdatabases s, syslocks l where l.dbid=s.dbid and s.name='" + svDatabaseName + "'";
elseif (nWersja>=90) then
szSQL = "select s.name from sys.databases s, sys.syslockinfo l where l.rsc_dbid=s.database_id and s.name='" + svDatabaseName + "'";
endif;

// Use the recordset to see if the database exists
pADORecordSetObj.Open(szSQL);
if (pADORecordSetObj.RecordCount >= 1) then
bExists = TRUE;
endif;

set pADOConnObj = NOTHING;
set pADORecordSetObj = NOTHING;
return bExists;
end;

Brak komentarzy:

Prześlij komentarz