From d39e82b25658c7f406cb81b66f0dacc36c0fe069 Mon Sep 17 00:00:00 2001 From: joost Date: Sun, 24 May 2009 11:20:45 +0000 Subject: [PATCH] * Fixed resource-leak on exceptions during creating/dropping databases, patch from taka_jp, bug #13587 git-svn-id: trunk@13190 - --- packages/fcl-db/src/sqldb/mysql/mysqlconn.inc | 27 ++++++++++--------- 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/packages/fcl-db/src/sqldb/mysql/mysqlconn.inc b/packages/fcl-db/src/sqldb/mysql/mysqlconn.inc index b24342db67..7c6dbd49b2 100644 --- a/packages/fcl-db/src/sqldb/mysql/mysqlconn.inc +++ b/packages/fcl-db/src/sqldb/mysql/mysqlconn.inc @@ -310,18 +310,21 @@ begin InitialiseMysql; - H:=HostName; - U:=UserName; - P:=Password; - AMySQL := nil; - ConnectMySQL(AMySQL,pchar(H),pchar(U),pchar(P)); - - if mysql_query(AMySQL,pchar(query))<>0 then - MySQLError(AMySQL,Format(SErrExecuting,[StrPas(mysql_error(AMySQL))]),Self); - - mysql_close(AMySQL); - - ReleaseMysql; + try + H:=HostName; + U:=UserName; + P:=Password; + AMySQL := nil; + ConnectMySQL(AMySQL,pchar(H),pchar(U),pchar(P)); + try + if mysql_query(AMySQL,pchar(query))<>0 then + MySQLError(AMySQL,Format(SErrExecuting,[StrPas(mysql_error(AMySQL))]),Self); + finally + mysql_close(AMySQL); + end; + finally + ReleaseMysql; + end; end; function TConnectionName.EscapeString(const Str: string): string;