From 85f138b40966f8988d78d02f9a78ca0d8a349205 Mon Sep 17 00:00:00 2001 From: pierre Date: Tue, 10 Dec 2013 08:37:39 +0000 Subject: [PATCH] + Add StringQuery and InsertQuery functions. * Call FreeQueryResults if TQueryResult is discarded. git-svn-id: trunk@26207 - --- tests/utils/dbtests.pp | 50 +++++++++++++++++++++++++++++++++--------- 1 file changed, 40 insertions(+), 10 deletions(-) diff --git a/tests/utils/dbtests.pp b/tests/utils/dbtests.pp index c6d7fc4443..7b4afa1023 100644 --- a/tests/utils/dbtests.pp +++ b/tests/utils/dbtests.pp @@ -37,12 +37,14 @@ Type Function ConnectToDatabase(DatabaseName,Host,User,Password,Port : String) : Boolean; Procedure DisconnectDatabase; +Function InsertQuery(const Query : string) : Integer; Function RunQuery (Qry : String; Var res : TQueryResult) : Boolean ; Procedure FreeQueryResult (Res : TQueryResult); Function GetResultField (Res : TQueryResult; Id : Integer) : String; Function IDQuery(Qry : String) : Integer; +Function StringQuery(Qry : String) : String; Function EscapeSQL( S : String) : String; -Function SQLDate(D : TDateTime) : String; +Function SQLDate(D : TDateTime) : String; var RelSrcDir, @@ -166,6 +168,20 @@ begin end; end; +Function StringQuery(Qry : String) : String; + +Var + Res : TQueryResult; + +begin + Result:=''; + If RunQuery(Qry,Res) then + begin + Result:=GetResultField(Res,0); + FreeQueryResult(Res); + end; +end; + Function EscapeSQL( S : String) : String; begin @@ -245,6 +261,20 @@ begin Result:=IDQuery(Format(SFromIDS,[OSID,CPUID,VERSIONID,SQLDate(Date)])); end; +Function InsertQuery(const Query : string) : Integer; +Var + Res : TQueryResult; + +begin + If RunQuery(Query,Res) then + begin + Result:=mysql_insert_id(connection); + FreeQueryResult(Res); + end + else + Result:=-1; +end; + Function AddRun(OSID, CPUID, VERSIONID, CATEGORYID : Integer; Date : TDateTime) : Integer; Const @@ -252,15 +282,11 @@ Const '(TU_OS_FK,TU_CPU_FK,TU_VERSION_FK,TU_CATEGORY_FK,TU_DATE)'+ ' VALUES '+ '(%d,%d,%d,%d,"%s")'; - -Var - Res : TQueryResult; - +var + Qry : string; begin - If RunQuery(Format(SInsertRun,[OSID,CPUID,VERSIONID,CATEGORYID,SQLDate(Date)]),Res) then - Result:=mysql_insert_id(connection) - else - Result:=-1; + qry:=Format(SInsertRun,[OSID,CPUID,VERSIONID,CATEGORYID,SQLDate(Date)]); + Result:=InsertQuery(Qry); end; function posr(c : Char; const s : AnsiString) : integer; @@ -361,6 +387,7 @@ begin begin If RunQuery(Format(SInsertTest,[Name]),Res) then begin + FreeQueryResult(Res); Result:=GetTestID(Name); If Result=-1 then Verbose(V_WARNING,'Could not find newly added test!') @@ -411,7 +438,8 @@ begin Source, ID ]); - Result:=RunQuery(Qry,res) + Result:=RunQuery(Qry,res); + FreeQueryResult(Res); end; Function AddTestResult(TestID,RunID,TestRes : Integer; @@ -452,6 +480,7 @@ begin begin Verbose(V_Warning,'Insert Log failed'); end; + FreeQueryResult(Res); end; { If test already existed, return false for is_new to avoid double counting } is_new:=not updateValues; @@ -477,6 +506,7 @@ Var begin Result:=RunQuery(Format(SDeleteRun,[ID]),Res); + FreeQueryResult(Res); end; begin