浏览代码

* fcl-db: cosmetic: improve documentation for TFieldType array members

git-svn-id: trunk@27659 -
reiniero 11 年之前
父节点
当前提交
87f7cf715e
共有 3 个文件被更改,包括 174 次插入135 次删除
  1. 90 79
      packages/fcl-db/src/base/db.pas
  2. 44 16
      packages/fcl-db/src/export/fpfixedexport.pp
  3. 40 40
      packages/fcl-db/tests/sqldbtoolsunit.pas

+ 90 - 79
packages/fcl-db/src/base/db.pas

@@ -1,6 +1,6 @@
 {
     This file is part of the Free Pascal run time library.
-    Copyright (c) 1999-2000 by Michael Van Canneyt, member of the
+    Copyright (c) 1999-2014 by Michael Van Canneyt, member of the
     Free Pascal development team
 
 
@@ -100,13 +100,8 @@ type
 
   TFieldClass = class of TField;
 
-{
-  TFieldType = (ftUnknown, ftString, ftSmallint, ftInteger, ftWord,
-    ftBoolean, ftFloat, ftDate, ftTime, ftDateTime,
-    ftBytes, ftVarBytes, ftAutoInc, ftBlob, ftMemo, ftGraphic,
-    ftFmtMemo, ftParadoxOle, ftDBaseOle, ftTypedBinary, ftCursor);
-}
-
+  // Data type for field.
+  // The order is determined by Delphi compatibility
   TFieldType = (ftUnknown, ftString, ftSmallint, ftInteger, ftWord,
     ftBoolean, ftFloat, ftCurrency, ftBCD, ftDate,  ftTime, ftDateTime,
     ftBytes, ftVarBytes, ftAutoInc, ftBlob, ftMemo, ftGraphic, ftFmtMemo,
@@ -115,7 +110,7 @@ type
     ftDataSet, ftOraBlob, ftOraClob, ftVariant, ftInterface,
     ftIDispatch, ftGuid, ftTimeStamp, ftFMTBcd, ftFixedWideChar, ftWideMemo);
 
-{ Part of DBCommon, but temporary defined here (bug 8206) }
+{ Part of DBCommon, but temporarily defined here (bug 8206) }
 
  TFieldMap = array[TFieldType] of Byte;
 
@@ -1997,85 +1992,101 @@ type
 
 
 const
-  FieldTypetoVariantMap : array[TFieldType] of Integer = (varError, varOleStr, varSmallint,
-    varInteger, varSmallint, varBoolean, varDouble, varCurrency, varCurrency,
-    varDate, varDate, varDate, varOleStr, varOleStr, varInteger, varOleStr,
-    varOleStr, varOleStr, varOleStr, varOleStr, varOleStr, varOleStr, varError,
-    varOleStr, varOleStr, varError, varError, varError, varError, varError,
-    varOleStr, varOleStr, varVariant, varUnknown, varDispatch, varOleStr,
-    varOleStr, varDouble, varOleStr,varOleStr);
+  FieldTypetoVariantMap : array[TFieldType] of Integer =
+    (
+      {ftUnknown} varError,
+      {ftString} varOleStr,
+      {ftSmallint} varSmallint,
+      {ftInteger} varInteger,
+      {ftWord} varSmallint,
+      {ftBoolean} varBoolean,
+      {ftFloat} varDouble,
+      {ftCurrency} varCurrency,
+      {ftBCD} varCurrency,
+      {ftDate} varDate,
+      {ftTime} varDate,
+      {ftDateTime} varDate,
+      {ftBytes} varOleStr,
+      {ftVarBytes} varOleStr,
+      {ftAutoInc} varInteger,
+      {ftBlob} varOleStr,
+      {ftMemo} varOleStr,
+      {ftGraphic} varOleStr,
+      {ftFmtMemo} varOleStr,
+      {ftParadoxOle} varOleStr,
+      {ftDBaseOle} varOleStr,
+      {ftTypedBinary} varOleStr,
+      {ftCursor} varError,
+      {ftFixedChar} varOleStr,
+      {ftWideString} varOleStr,
+      {ftLargeint} varError,
+      {ftADT} varError,
+      {ftArray} varError,
+      {ftReference} varError,
+      {ftDataSet} varError,
+      {ftOraBlob} varOleStr,
+      {ftOraClob} varOleStr,
+      {ftVariant} varVariant,
+      {ftInterface} varUnknown,
+      {ftIDispatch} varDispatch,
+      {ftGuid} varOleStr,
+      {ftTimeStamp} varOleStr,
+      {ftFMTBcd} varDouble,
+      {ftFixedWideChar} varOleStr,
+      {ftWideMemo} varOleStr
+    );
 
 
 Const
   Fieldtypenames : Array [TFieldType] of String[15] =
     (
-      'Unknown',
-      'String',
-      'Smallint',
-      'Integer',
-      'Word',
-      'Boolean',
-      'Float',
-      'Currency',
-      'BCD',
-      'Date',
-      'Time',
-      'DateTime',
-      'Bytes',
-      'VarBytes',
-      'AutoInc',
-      'Blob',
-      'Memo',
-      'Graphic',
-      'FmtMemo',
-      'ParadoxOle',
-      'DBaseOle',
-      'TypedBinary',
-      'Cursor',
-      'FixedChar',
-      'WideString',
-      'Largeint',
-      'ADT',
-      'Array',
-      'Reference',
-      'DataSet',
-      'OraBlob',
-      'OraClob',
-      'Variant',
-      'Interface',
-      'IDispatch',
-      'Guid',
-      'TimeStamp',
-      'FMTBcd',
-      'FixedWideChar',
-      'WideMemo'
+      {ftUnknown} 'Unknown',
+      {ftString} 'String',
+      {ftSmallint} 'Smallint',
+      {ftInteger} 'Integer',
+      {ftWord} 'Word',
+      {ftBoolean} 'Boolean',
+      {ftFloat} 'Float',
+      {ftCurrency} 'Currency',
+      {ftBCD} 'BCD',
+      {ftDate} 'Date',
+      {ftTime} 'Time',
+      {ftDateTime} 'DateTime',
+      {ftBytes} 'Bytes',
+      {ftVarBytes} 'VarBytes',
+      {ftAutoInc} 'AutoInc',
+      {ftBlob} 'Blob',
+      {ftMemo} 'Memo',
+      {ftGraphic} 'Graphic',
+      {ftFmtMemo} 'FmtMemo',
+      {ftParadoxOle} 'ParadoxOle',
+      {ftDBaseOle} 'DBaseOle',
+      {ftTypedBinary} 'TypedBinary',
+      {ftCursor} 'Cursor',
+      {ftFixedChar} 'FixedChar',
+      {ftWideString} 'WideString',
+      {ftLargeint} 'Largeint',
+      {ftADT} 'ADT',
+      {ftArray} 'Array',
+      {ftReference} 'Reference',
+      {ftDataSet} 'DataSet',
+      {ftOraBlob} 'OraBlob',
+      {ftOraClob} 'OraClob',
+      {ftVariant} 'Variant',
+      {ftInterface} 'Interface',
+      {ftIDispatch} 'IDispatch',
+      {ftGuid} 'Guid',
+      {ftTimeStamp} 'TimeStamp',
+      {ftFMTBcd} 'FMTBcd',
+      {ftFixedWideChar} 'FixedWideChar',
+      {ftWideMemo} 'WideMemo'
     );
-    { 'Unknown',
-      'String',
-      'Smallint',
-      'Integer',
-      'Word',
-      'Boolean',
-      'Float',
-      'Date',
-      'Time',
-      'DateTime',
-      'Bytes',
-      'VarBytes',
-      'AutoInc',
-      'Blob',
-      'Memo',
-      'Graphic',
-      'FmtMemo',
-      'ParadoxOle',
-      'DBaseOle',
-      'TypedBinary',
-      'Cursor'
-    );}
+
 
 const
   DefaultFieldClasses : Array [TFieldType] of TFieldClass =
-    ( { ftUnknown} Tfield,
+    (
+      { ftUnknown} Tfield,
       { ftString} TStringField,
       { ftSmallint} TSmallIntField,
       { ftInteger} TLongintField,

+ 44 - 16
packages/fcl-db/src/export/fpfixedexport.pp

@@ -88,23 +88,51 @@ end;
 
 procedure TCustomFixedLengthExporter.BuildDefaultFieldMap(AMap: TExportFields);
 
-{  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
-  FieldWidths : Array[TFieldType] of integer
-              = (-1,0,3,10,5,
-                  1,20,20,20,10,8,20,
-                  0,0,10,0,0,0,0,
-                  0,0,0,0,0,
-                  0,0,0,0,0,
-                  0,0,0,0,0,
-                  0,0,0,0,0,0);
+  // Mapping to TFieldType
+  FieldWidths : Array[TFieldType] of integer =
+    (
+    {ftUnknown} -1,
+    {ftString} 0,
+    {ftSmallint} 3,
+    {ftInteger} 10,
+    {ftWord} 5,
+    {ftBoolean} 1,
+    {ftFloat} 20,
+    {ftCurrency} 20,
+    {ftBCD} 20,
+    {ftDate} 10,
+    {ftTime} 8,
+    {ftDateTime} 20,
+    {ftBytes} 0,
+    {ftVarBytes} 0,
+    {ftAutoInc} 10,
+    {ftBlob} 0,
+    {ftMemo} 0,
+    {ftGraphic} 0,
+    {ftFmtMemo} 0,
+    {ftParadoxOle} 0,
+    {ftDBaseOle} 0,
+    {ftTypedBinary} 0,
+    {ftCursor} 0,
+    {ftFixedChar} 0,
+    {ftWideString} 0,
+    {ftLargeint} 0,
+    {ftADT} 0,
+    {ftArray} 0,
+    {ftReference} 0,
+    {ftDataSet} 0,
+    {ftOraBlob} 0,
+    {ftOraClob} 0,
+    {ftVariant} 0,
+    {ftInterface} 0,
+    {ftIDispatch} 0,
+    {ftGuid} 0,
+    {ftTimeStamp} 0,
+    {ftFMTBcd} 0,
+    {ftFixedWideChar} 0,
+    {ftWideMemo} 0
+    );
 
 Var
   I,W : Integer;

+ 40 - 40
packages/fcl-db/tests/sqldbtoolsunit.pas

@@ -85,46 +85,46 @@ type
 const
   FieldtypeDefinitionsConst : Array [TFieldType] of String[20] =
     (
-      '',
-      'VARCHAR(10)',
-      'SMALLINT',
-      'INTEGER',
-      '',             // ftWord
-      'BOOLEAN',
-      'DOUBLE PRECISION', // ftFloat
-      '',             // ftCurrency
-      'DECIMAL(18,4)',// ftBCD
-      'DATE',
-      'TIME',
-      'TIMESTAMP',    // ftDateTime
-      '',             // ftBytes
-      '',             // ftVarBytes
-      '',             // ftAutoInc
-      'BLOB',         // ftBlob
-      'BLOB',         // ftMemo
-      'BLOB',         // ftGraphic
-      '',
-      '',
-      '',
-      '',
-      '',
-      'CHAR(10)',     // ftFixedChar
-      '',             // ftWideString
-      'BIGINT',       // ftLargeInt
-      '',
-      '',
-      '',
-      '',
-      '',
-      '',
-      '',
-      '',
-      '',
-      '',             // ftGuid
-      'TIMESTAMP',    // ftTimestamp
-      'NUMERIC(18,6)',// ftFmtBCD
-      '',             // ftFixedWideChar
-      ''              // ftWideMemo
+      {ftUnknown} '',
+      {ftString} 'VARCHAR(10)',
+      {ftSmallint} 'SMALLINT',
+      {ftInteger} 'INTEGER',
+      {ftWord} '',
+      {ftBoolean} 'BOOLEAN',
+      {ftFloat} 'DOUBLE PRECISION',
+      {ftCurrency} '',
+      {ftBCD} 'DECIMAL(18,4)',
+      {ftDate} 'DATE',
+      {ftTime} 'TIME',
+      {ftDateTime} 'TIMESTAMP',
+      {ftBytes} '',
+      {ftVarBytes} '',
+      {ftAutoInc} '',
+      {ftBlob} 'BLOB',
+      {ftMemo} 'BLOB',
+      {ftGraphic} 'BLOB',
+      {ftFmtMemo} '',
+      {ftParadoxOle} '',
+      {ftDBaseOle} '',
+      {ftTypedBinary} '',
+      {ftCursor} '',
+      {ftFixedChar} 'CHAR(10)',
+      {ftWideString} '',
+      {ftLargeint} 'BIGINT',
+      {ftADT} '',
+      {ftArray} '',
+      {ftReference} '',
+      {ftDataSet} '',
+      {ftOraBlob} '',
+      {ftOraClob} '',
+      {ftVariant} '',
+      {ftInterface} '',
+      {ftIDispatch} '',
+      {ftGuid} '',
+      {ftTimeStamp} 'TIMESTAMP',
+      {ftFMTBcd} 'NUMERIC(18,6)',
+      {ftFixedWideChar} '',
+      {ftWideMemo} ''
     );
 
   // names as returned by ODBC SQLGetInfo(..., SQL_DBMS_NAME, ...) and GetConnectionInfo(citServerType)