summaryrefslogtreecommitdiff
path: root/packages/fcl-db
diff options
context:
space:
mode:
authormichael <michael@3ad0048d-3df7-0310-abae-a5850022a9f2>2010-10-23 11:04:59 +0000
committermichael <michael@3ad0048d-3df7-0310-abae-a5850022a9f2>2010-10-23 11:04:59 +0000
commit0634d79cf45778af84831031c7a2f1c489042825 (patch)
tree5165efd25447e838709ba39d24a6a09b24c7c4df /packages/fcl-db
parent7b3666679651837eb2c8592f1082db011485e0e9 (diff)
downloadfpc-0634d79cf45778af84831031c7a2f1c489042825.tar.gz
* Fixed blob parameter support
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@16203 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'packages/fcl-db')
-rw-r--r--packages/fcl-db/src/sqldb/postgres/pqconnection.pp98
1 files changed, 55 insertions, 43 deletions
diff --git a/packages/fcl-db/src/sqldb/postgres/pqconnection.pp b/packages/fcl-db/src/sqldb/postgres/pqconnection.pp
index 8b6673b105..48d6b23e46 100644
--- a/packages/fcl-db/src/sqldb/postgres/pqconnection.pp
+++ b/packages/fcl-db/src/sqldb/postgres/pqconnection.pp
@@ -448,49 +448,59 @@ begin
end;
procedure TPQConnection.PrepareStatement(cursor: TSQLCursor;ATransaction : TSQLTransaction;buf : string; AParams : TParams);
-
+{
+ TFieldType = (ftUnknown, ftString, ftSmallint, ftInteger, ftWord,
+ ftBoolean, ftFloat, ftCurrency, ftBCD, ftDate, ftTime, ftDateTime,
+ ftBytes, ftVarBytes, ftAutoInc, ftBlob, ftMemo, ftGraphic, ftFmtMemo,
+ ftParadoxOle, ftDBaseOle, ftTypedBinary, ftCursor, ftFixedChar,
+ ftWideString, ftLargeint, ftADT, ftArray, ftReference,
+ ftDataSet, ftOraBlob, ftOraClob, ftVariant, ftInterface,
+ ftIDispatch, ftGuid, ftTimeStamp, ftFMTBcd, ftFixedWideChar, ftWideMemo);
+
+
+}
const TypeStrings : array[TFieldType] of string =
(
- 'Unknown',
- 'text',
- 'int',
- 'int',
- 'int',
- 'bool',
- 'float',
- 'numeric',
- 'numeric',
- 'date',
- 'time',
- 'timestamp',
- 'Unknown',
- 'Unknown',
- 'Unknown',
- 'Unknown',
- 'text',
- 'Unknown',
- 'Unknown',
- 'Unknown',
- 'Unknown',
- 'Unknown',
- 'Unknown',
- 'Unknown',
- 'Unknown',
- 'bigint',
- 'Unknown',
- 'Unknown',
- 'Unknown',
- 'Unknown',
- 'Unknown',
- 'Unknown',
- 'Unknown',
- 'Unknown',
- 'Unknown',
- 'Unknown',
- 'Unknown',
- 'Unknown',
- 'Unknown',
- 'Unknown'
+ 'Unknown', // ftUnknown
+ 'text', // ftString
+ 'int', // ftSmallint
+ 'int', // ftInteger
+ 'int', // ftWord
+ 'bool', // ftBoolean
+ 'float', // ftFloat
+ 'numeric', // ftCurrency
+ 'numeric', // ftBCD
+ 'date', // ftDate
+ 'time', // ftTime
+ 'timestamp', // ftDateTime
+ 'Unknown', // ftBytes
+ 'Unknown', // ftVarBytes
+ 'Unknown', // ftAutoInc
+ 'bytea', // ftBlob
+ 'text', // ftMemo
+ 'bytea', // ftGraphic
+ 'text', // ftFmtMemo
+ 'Unknown', // ftParadoxOle
+ 'Unknown', // ftDBaseOle
+ 'Unknown', // ftTypedBinary
+ 'Unknown', // ftCursor
+ 'text', // ftFixedChar
+ 'text', // ftWideString
+ 'bigint', // ftLargeint
+ 'Unknown', // ftADT
+ 'Unknown', // ftArray
+ 'Unknown', // ftReference
+ 'Unknown', // ftDataSet
+ 'Unknown', // ftOraBlob
+ 'Unknown', // ftOraClob
+ 'Unknown', // ftVariant
+ 'Unknown', // ftInterface
+ 'Unknown', // ftIDispatch
+ 'Unknown', // ftGuid
+ 'Unknown', // ftTimeStamp
+ 'Unknown', // ftFMTBcd
+ 'Unknown', // ftFixedWideChar
+ 'Unknown' // ftWideMemo
);
@@ -518,8 +528,10 @@ begin
s := s + TypeStrings[AParams[i].DataType] + ','
else
begin
- if AParams[i].DataType = ftUnknown then DatabaseErrorFmt(SUnknownParamFieldType,[AParams[i].Name],self)
- else DatabaseErrorFmt(SUnsupportedParameter,[Fieldtypenames[AParams[i].DataType]],self);
+ if AParams[i].DataType = ftUnknown then
+ DatabaseErrorFmt(SUnknownParamFieldType,[AParams[i].Name],self)
+ else
+ DatabaseErrorFmt(SUnsupportedParameter,[Fieldtypenames[AParams[i].DataType]],self);
end;
s[length(s)] := ')';
buf := AParams.ParseSQL(buf,false,sqEscapeSlash in ConnOptions, sqEscapeRepeat in ConnOptions,psPostgreSQL);