Browse Source

* Fixed blob parameter support

git-svn-id: trunk@16203 -
michael 15 years ago
parent
commit
f5072a3816
1 changed files with 55 additions and 43 deletions
  1. 55 43
      packages/fcl-db/src/sqldb/postgres/pqconnection.pp

+ 55 - 43
packages/fcl-db/src/sqldb/postgres/pqconnection.pp

@@ -448,49 +448,59 @@ begin
 end;
 end;
 
 
 procedure TPQConnection.PrepareStatement(cursor: TSQLCursor;ATransaction : TSQLTransaction;buf : string; AParams : TParams);
 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 =
 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] + ','
           s := s + TypeStrings[AParams[i].DataType] + ','
         else
         else
           begin
           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;
           end;
         s[length(s)] := ')';
         s[length(s)] := ')';
         buf := AParams.ParseSQL(buf,false,sqEscapeSlash in ConnOptions, sqEscapeRepeat in ConnOptions,psPostgreSQL);
         buf := AParams.ParseSQL(buf,false,sqEscapeSlash in ConnOptions, sqEscapeRepeat in ConnOptions,psPostgreSQL);