summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlacak <lacak@3ad0048d-3df7-0310-abae-a5850022a9f2>2015-01-19 13:01:51 +0000
committerlacak <lacak@3ad0048d-3df7-0310-abae-a5850022a9f2>2015-01-19 13:01:51 +0000
commitfc91188c91b9e16dbd2b4b26ab804bbcb7428f97 (patch)
tree70611525b103ce8bac7cc17942086677ad32ad8d
parent89652a0c9f634be40b64c2f15e8b5a58b41c6963 (diff)
downloadfpc-fc91188c91b9e16dbd2b4b26ab804bbcb7428f97.tar.gz
fcl-db: postgresql: Fix AV in UnprepareStatement (TPQCursor.tr is nil).
Revealed by TTestTSQLQuery.TestKeepOpenOnCommit. Commit destroys TPQTrans object, which in destructor sets tr:=nil for all registered cursors. So attempt to Close TSQLQuery after Commit has leading to AV. git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@29507 3ad0048d-3df7-0310-abae-a5850022a9f2
-rw-r--r--packages/fcl-db/src/sqldb/postgres/pqconnection.pp2
1 files changed, 1 insertions, 1 deletions
diff --git a/packages/fcl-db/src/sqldb/postgres/pqconnection.pp b/packages/fcl-db/src/sqldb/postgres/pqconnection.pp
index 8d0321c34e..bcf43828a1 100644
--- a/packages/fcl-db/src/sqldb/postgres/pqconnection.pp
+++ b/packages/fcl-db/src/sqldb/postgres/pqconnection.pp
@@ -953,7 +953,7 @@ begin
res:=nil;
if FPrepared then
begin
- if PQtransactionStatus(tr.PGConn) <> PQTRANS_INERROR then
+ if assigned(tr) and (PQtransactionStatus(tr.PGConn) <> PQTRANS_INERROR) then
begin
res := PQexec(tr.PGConn,pchar('deallocate '+StmtName));
CheckResultError(res,nil,SErrUnPrepareFailed);