Browse Source

fcl-db: interbase: formating

git-svn-id: trunk@29181 -
lacak 10 years ago
parent
commit
2d4288c5d9
1 changed files with 17 additions and 17 deletions
  1. 17 17
      packages/fcl-db/src/sqldb/interbase/ibconnection.pp

+ 17 - 17
packages/fcl-db/src/sqldb/interbase/ibconnection.pp

@@ -999,6 +999,15 @@ begin
       VSQLVar^.SQLInd^ := 0;
 
       case (VSQLVar^.sqltype and not 1) of
+        SQL_SHORT, SQL_BOOLEAN_INTERBASE :
+          begin
+            if VSQLVar^.sqlscale = 0 then
+              si := AParams[ParNr].AsSmallint
+            else
+              si := Round(AParams[ParNr].AsCurrency * IntPower10(-VSQLVar^.sqlscale));
+            i := si;
+            Move(i, VSQLVar^.SQLData^, VSQLVar^.SQLLen);
+          end;
         SQL_LONG :
           begin
             if VSQLVar^.sqlscale = 0 then
@@ -1007,15 +1016,18 @@ begin
               i := Round(AParams[ParNr].AsFloat * IntPower10(-VSQLVar^.sqlscale)); //*any number of digits
             Move(i, VSQLVar^.SQLData^, VSQLVar^.SQLLen);
           end;
-        SQL_SHORT, SQL_BOOLEAN_INTERBASE :
+        SQL_INT64:
           begin
             if VSQLVar^.sqlscale = 0 then
-              si := AParams[ParNr].AsSmallint
+              li := AParams[ParNr].AsLargeInt
+            else if AParams[ParNr].DataType = ftFMTBcd then
+              li := AParams[ParNr].AsFMTBCD * IntPower10(-VSQLVar^.sqlscale)
             else
-              si := Round(AParams[ParNr].AsCurrency * IntPower10(-VSQLVar^.sqlscale));
-            i := si;
-            Move(i, VSQLVar^.SQLData^, VSQLVar^.SQLLen);
+              li := Round(AParams[ParNr].AsCurrency * IntPower10(-VSQLVar^.sqlscale));
+            Move(li, VSQLVar^.SQLData^, VSQLVar^.SQLLen);
           end;
+        SQL_DOUBLE, SQL_FLOAT:
+          SetFloat(VSQLVar^.SQLData, AParams[ParNr].AsFloat, VSQLVar^.SQLLen);
         SQL_BLOB :
           SetBlobParam;
         SQL_VARYING, SQL_TEXT :
@@ -1056,18 +1068,6 @@ begin
           end;
         SQL_TYPE_DATE, SQL_TYPE_TIME, SQL_TIMESTAMP :
           SetDateTime(VSQLVar^.SQLData, AParams[ParNr].AsDateTime, VSQLVar^.SQLType);
-        SQL_INT64:
-          begin
-            if VSQLVar^.sqlscale = 0 then
-              li := AParams[ParNr].AsLargeInt
-            else if AParams[ParNr].DataType = ftFMTBcd then
-              li := AParams[ParNr].AsFMTBCD * IntPower10(-VSQLVar^.sqlscale)
-            else
-              li := Round(AParams[ParNr].AsCurrency * IntPower10(-VSQLVar^.sqlscale));
-            Move(li, VSQLVar^.SQLData^, VSQLVar^.SQLLen);
-          end;
-        SQL_DOUBLE, SQL_FLOAT:
-          SetFloat(VSQLVar^.SQLData, AParams[ParNr].AsFloat, VSQLVar^.SQLLen);
         SQL_BOOLEAN_FIREBIRD:
           PByte(VSQLVar^.SQLData)^ := Byte(AParams[ParNr].AsBoolean);
       else