diff options
author | florian <florian@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2011-04-10 19:20:48 +0000 |
---|---|---|
committer | florian <florian@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2011-04-10 19:20:48 +0000 |
commit | 160cc1e115eeb75638dce6effdd16b2bc810ddb4 (patch) | |
tree | b791a95695a7cf674e61a6153139c6f9c6c491fa /packages/fcl-db/src/sqldb | |
parent | 3843727e74b31bbf2a34e7e3b89ee422269f770e (diff) | |
parent | 413a6aa6469e6c297780217a27ca91363c637944 (diff) | |
download | fpc-avr.tar.gz |
* rebase to trunk@17295avr
git-svn-id: http://svn.freepascal.org/svn/fpc/branches/avr@17296 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'packages/fcl-db/src/sqldb')
-rw-r--r-- | packages/fcl-db/src/sqldb/mysql/mysql50conn.pas | 1 | ||||
-rw-r--r-- | packages/fcl-db/src/sqldb/mysql/mysql51conn.pas | 2 | ||||
-rw-r--r-- | packages/fcl-db/src/sqldb/mysql/mysqlconn.inc | 10 | ||||
-rw-r--r-- | packages/fcl-db/src/sqldb/postgres/pqconnection.pp | 16 |
4 files changed, 16 insertions, 13 deletions
diff --git a/packages/fcl-db/src/sqldb/mysql/mysql50conn.pas b/packages/fcl-db/src/sqldb/mysql/mysql50conn.pas index a3695ad929..80e3994d91 100644 --- a/packages/fcl-db/src/sqldb/mysql/mysql50conn.pas +++ b/packages/fcl-db/src/sqldb/mysql/mysql50conn.pas @@ -4,6 +4,7 @@ unit mysql50conn; +{$DEFINE MYSQL50_up} {$DEFINE MYSQL50} {$i mysqlconn.inc} diff --git a/packages/fcl-db/src/sqldb/mysql/mysql51conn.pas b/packages/fcl-db/src/sqldb/mysql/mysql51conn.pas index 9088bc80f4..41bbc113b0 100644 --- a/packages/fcl-db/src/sqldb/mysql/mysql51conn.pas +++ b/packages/fcl-db/src/sqldb/mysql/mysql51conn.pas @@ -4,6 +4,8 @@ unit mysql51conn; +{$DEFINE MYSQL50_UP} +{$DEFINE MYSQL51_UP} {$DEFINE MYSQL51} {$i mysqlconn.inc} diff --git a/packages/fcl-db/src/sqldb/mysql/mysqlconn.inc b/packages/fcl-db/src/sqldb/mysql/mysqlconn.inc index 0ed85ff45c..8f6f7a61e2 100644 --- a/packages/fcl-db/src/sqldb/mysql/mysqlconn.inc +++ b/packages/fcl-db/src/sqldb/mysql/mysqlconn.inc @@ -188,12 +188,8 @@ const 'MYSQL_OPT_USE_REMOTE_CONNECTION','MYSQL_OPT_USE_EMBEDDED_CONNECTION', 'MYSQL_OPT_GUESS_CONNECTION','MYSQL_SET_CLIENT_IP', 'MYSQL_SECURE_AUTH' -{$IFDEF MYSQL50} +{$IFDEF MYSQL50_UP} ,'MYSQL_REPORT_DATA_TRUNCATION', 'MYSQL_OPT_RECONNECT' -{$ELSE} - {$IFDEF MYSQL51} - ,'MYSQL_REPORT_DATA_TRUNCATION', 'MYSQL_OPT_RECONNECT' - {$ENDIF} {$ENDIF} ); @@ -559,7 +555,7 @@ begin NewType := ftInteger; NewSize := 0; end; -{$ifdef mysql50} +{$ifdef mysql50_up} FIELD_TYPE_NEWDECIMAL, {$endif} FIELD_TYPE_DECIMAL: if ADecimals < 5 then @@ -867,7 +863,7 @@ begin VL := 0; Move(VL, Dest^, SizeOf(LargeInt)); end; -{$ifdef mysql50} +{$ifdef mysql50_up} FIELD_TYPE_NEWDECIMAL, {$endif} FIELD_TYPE_DECIMAL, FIELD_TYPE_FLOAT, FIELD_TYPE_DOUBLE: diff --git a/packages/fcl-db/src/sqldb/postgres/pqconnection.pp b/packages/fcl-db/src/sqldb/postgres/pqconnection.pp index 664b8a2bd9..d40e9a9398 100644 --- a/packages/fcl-db/src/sqldb/postgres/pqconnection.pp +++ b/packages/fcl-db/src/sqldb/postgres/pqconnection.pp @@ -546,7 +546,7 @@ begin FPrepared := True; end else - statement := buf; + statement := AParams.ParseSQL(buf,false,sqEscapeSlash in ConnOptions, sqEscapeRepeat in ConnOptions,psPostgreSQL); end; end; @@ -561,10 +561,11 @@ begin res := pqexec(tr.PGConn,pchar('deallocate prepst'+nr)); if (PQresultStatus(res) <> PGRES_COMMAND_OK) then begin + pqclear(res); + DatabaseError(SErrPrepareFailed + ' (PostgreSQL: ' + PQerrorMessage(tr.PGConn) + ')',self) + end + else pqclear(res); - DatabaseError(SErrPrepareFailed + ' (PostgreSQL: ' + PQerrorMessage(tr.PGConn) + ')',self) - end; - pqclear(res); end; FPrepared := False; end; @@ -641,9 +642,12 @@ begin s := Statement; res := pqexec(tr.PGConn,pchar(s)); if (PQresultStatus(res) in [PGRES_COMMAND_OK,PGRES_TUPLES_OK]) then - pqclear(res); + begin + pqclear(res); + res:=nil; + end; end; - if not (PQresultStatus(res) in [PGRES_COMMAND_OK,PGRES_TUPLES_OK]) then + if assigned(res) and not (PQresultStatus(res) in [PGRES_COMMAND_OK,PGRES_TUPLES_OK]) then begin s := PQerrorMessage(tr.PGConn); pqclear(res); |