Forum Discussion
Bharadwaj
10 years agoContributor
GetSQLFieldValue('select * from AusOptions WHERE VBName = ''drugScan'' ' ,'VALUE',Project.Variables.ConnectionString);
function DBCommand(AConnectionString, sql: string, action: string;
IsLogRowsAffected, MinTrueValue: integer = 1; ForceDefaultDB: Boolean = false): OleVariant;
var
qry: OleVariant;
qryDetails: string;
begin
qry := ADO.CreateADOQuery;
if ForceDefaultDB or
((Project.Variables.VariableExists('GSDBConnectionString')) and
(AConnectionString = Project.Variables.GSDBConnectionString)) then
qry.ConnectionString := AConnectionString
else
qry.ConnectionString := CorrectConnectionString(AConnectionString);
qry.SQL := sql;
try
qryDetails := 'Connection String:' + Crlf + qry.ConnectionString + Crlf + Crlf +
'SQL:' + Crlf + sql;
if aqString.ToLower(action) = 'query' then //query
begin
qry.open;
result := qry;
end
else //execute
begin
qry.ExecSQL;
if IsLogRowsAffected then //return true only if any record updated/deleted
begin
result := qry.RowsAffected >= MinTrueValue;
if result then
Log.Message('Executing SQL below successful. ' + VarToStr(qry.RowsAffected) + ' row(s) affected.', qryDetails)
else
Log.Warning('Executing SQL below successful. ' + VarToStr(qry.RowsAffected) + ' row(s) affected.', qryDetails); //0 row affected
end
else //return true regardless if any record updated/deleted
result := true;
CloseQuery(qry);
end;
except
Log.Error('Executing SQL below failed.', qryDetails + Crlf + Crlf + 'Error:' + Crlf + ExceptionMessage);
result := false;
end;
end;
function GetSQLFieldValue(SQL, FieldName, ConnStr: string): OleVariant;
var
qry: OleVariant;
begin
result := false;
qry := DBCommand(pass all params)
if VarType(qry) = 9 then //object; boolean = 11
result := qry.FieldByName(FieldName).AsString;
CloseQuery(qry);
end;