Funkcja wykonuje zapytanie SQL i zwraca wartości z pierwszej kolumny w zmiennej "svWynik"; Funkcja zwraca true/false w przypadku poprawnego/błędnego wykonania zapytania.
function BOOL QuerySQL(sSQL,sServerName, sDBName, sDriver, bTrustedConn,
sUserName, sUserPwd, svWynik, bLog)
OBJECT objConn, objRST, pADORecordSetObj,adoCommand;
STRING sTekst, sConnString;
STRING szADOConnObjID,szADORecordSetObjID;
STRING szError;
BOOL bReturn;
begin
bReturn = FALSE;
if (sDriver == "") then sConnString = "Provider=sqloledb;Persist Security Info=False;";
else sConnString = "Driver={" + sDriver + "};Persist Security Info=False;";
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;
try
szADOConnObjID = "ADODB.Connection";
set objConn = CreateObject(szADOConnObjID);
if (IsObject(objConn)) then
objConn.ConnectionString = sConnString;
objConn.Open;
szADORecordSetObjID = "ADODB.Recordset";
set pADORecordSetObj = CreateObject(szADORecordSetObjID);
pADORecordSetObj.CursorType = 3;
pADORecordSetObj.ActiveConnection = objConn;
pADORecordSetObj.Open(sSQL);
if ((pADORecordSetObj.RecordCount >= 1)||(pADORecordSetObj.RecordCount = -1)) then
while (!pADORecordSetObj.EOF)
svWynik = pADORecordSetObj(0);
pADORecordSetObj.MoveNext;
endwhile;
if (StrLength(svWynik)>0) then bReturn = TRUE;
else bReturn = FALSE;
endif;
if ((bLog)&&(!bReturn)) then WriteLog(2," Wynik zapytania jest pusty"); endif;
else
bReturn = FALSE;
endif;
set pADORecordSetObj = NOTHING;
objConn.Close;
else
if (bLog) then WriteLog(1,"Nie moża utworzyć obiektu połączenia ADODB.Connection do "+sDBName); endif;
endif;
set objConn = NOTHING;
set objRST = NOTHING;
catch
if (bLog) then WriteLog(1,"Błąd wykonania zapytania SQL"); endif;
endcatch;
return (bReturn);
end;
Brak komentarzy:
Prześlij komentarz