dbExpress-Datentypzuordnung für unterstützte Datenbanken

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Datenbankanwendungen für die Win32-Plattform entwickeln - Index


Datentypen der unterstützten Datenbanken sind dbExpress-Datentypen zugeordnet. Bei Bedarf sorgt dbExpress für:

  • Eine konsistente Datentypzuordnung zwischen den Datenbanken.
  • Eine Zuordnung logischer Datentypen zu dbExpress-Typen.


Verwendung von Datentypen

dbExpress enthält ein breites Spektrum logischer Datentypen. dbExpress unterstützt die Zuordnung logischer Datentypen für Adaptive Server Anywhere, DB2, Informix, InterBase, MS SQL, MSDE, MYSQL, Oracle und Sybase.

Die Zuordnungstabellen geben an, welche Datentypen an Datenbanken gesendet und von diesen abgerufen werden können (Ausnahmen siehe Anmerkungen). Diese Zuordnungen funktionieren korrekt, aber es können durchaus auch andere Zuordnungen möglich sein. Eine Datenbank könnte diese Typen beim Abfragen einer Tabelle per Vorgabe einem anderen Typ zuordnen. Der Typ Geometry gibt beispielsweise per Vorgabe ein Feld des Typs TDBXDataTypes.VarBytesType zurück.

Für die folgende Abfrage:

 Select * from table

erhalten Sie im Allgemeinen Daten des Typs zurück, der in den Zuordnungstabellen angegeben ist.

In manchen Fällen ist es wünschenswert, den Rückgabetyp festzulegen. Zum Beispiel bei einer Tabelle mit der Spalte geometryCol (Typ: Geometry) könnten Sie

 Select geometryCol.ToString() from table

angeben, um die Daten als String abzurufen und um zu verhindern, dass der zugeordnete Datentyp für diese Daten verwendet wird.

Die Daten, die Sie an eine Datenbank senden, lassen sich mithilfe von Parametern ebenfalls spezifizieren. Für eine Tabelle mit der Spalte intCol des Typs int und der Spalte geometryCol des Typs Geometry könnten Sie beispielsweise die folgende Anweisung verwenden:

 insert into table (intCol, geometryCol) values (?, ?)

und dann die Parameterwerte, wie z.B. 3, 'Point(1 1)', übergeben.


InterBase

dbExpress stellt Datentypzuordnungen für InterBase 2020, einschließlich To-Go, bereit In der folgenden Tabelle finden Sie die Datentypzuordnungen zwischen dbExpress und InterBase 2020.


InterBase-Typ dbExpress-Typ
integer TDBXDataTypes.Int32Type
smallint TDBXDataTypes.Int16Type
blob TDBXDataTypes.BlobType
blob-Untertyp text TDBXDataTypes.BlobType mit dem Untertyp TDBXSubDataTypes.MemoSubType oder TDBXSubDataTypes.WideMemoSubType für eine UTF-8-Datenbank
numeric TDBXDataTypes.BcdType
decimal TDBXDataTypes.BcdType
float TDBXDataTypes.DoubleType
double precision TDBXDataTypes.DoubleType
date TDBXDataTypes.DateType
time TDBXDataTypes.TimeType
timestamp TDBXDataTypes.TimeStampType
boolean TDBXDataTypes.BooleanType
char TDBXDataTypes.WideStringType, wenn der Server UTF-8 verwendet; ansonsten TDBXDataTypes.AnsiStringType
varchar TDBXDataTypes.WideStringType, wenn der Server UTF-8 verwendet; ansonsten TDBXDataTypes.AnsiStringType


MS SQL und MSDE

Beachten Sie bitte, dass dbExpress alle MS SQL 2008-Datentypen unterstützt. In der folgenden Tabelle finden Sie die Datentypzuordnungen für MS SQL und MSDE.

MS SQL-Typ dbExpress-Typ
int TDBXDataTypes.Int32Type
bigint TDBXDataTypes.Int64Type
smallint TDBXDataTypes.Int16Type
tinyint TDBXDataTypes.UInt8Type
char TDBXDataTypes.AnsiStringType
varchar TDBXDataTypes.AnsiStringType
text TDBXDataTypes.BlobType, Untertyp TDBXSubDataTypes.MemoSubType
nchar TDBXDataTypes.WideStringType
nvarchar TDBXDataTypes.WideStringType
ntext TDBXDataTypes.BlobType, Untertyp TDBXSubDataTypes.WideMemoSubType
geometry TDBXDataTypes.AnsiStringType. Benutzen Sie diesen Typ, wenn Sie Parameter verwenden. Die Datenbank gibt TDBXDataTypes.VarBytesType zurück.
geography TDBXDataTypes.AnsiStringType. Benutzen Sie diesen Typ, wenn Sie Parameter verwenden. Die Datenbank gibt TDBXDataTypes.VarBytesType zurück.
money TDBXDataTypes.BcdType
smallmoney TDBXDataTypes.BcdType
float TDBXDataTypes.DoubleType
real TDBXDataTypes.DoubleType
decimal TDBXDataTypes.BcdType
numeric TDBXDataTypes.BcdType
xml TDBXDataTypes.WideStringType
sysname TDBXDataTypes.WideStringType
date TDBXDataTypes.DateType
time TDBXDataTypes.TimeType
datetime TDBXDataTypes.TimeStampType
datetime2 TDBXDataTypes.TimeStampType
smalldatetime TDBXDataTypes.TimeStampType
datetimeoffset TDBXDataTypes.TimeStampOffsetType
binary TDBXDataTypes.BytesType
varbinary TDBXDataTypes.VarBytesType
image TDBXDataTypes.BlobType, Untertyp TDBXSubDataTypes.BinarySubType
bit TDBXDataTypes.BooleanType
hierarchyid TDBXDataTypes.WideStringType. Verwenden Sie den Parameter TDBXDataTypes.WideStringType, die Datenbank gibt aber TDBXDataTypes.VarBytesType zurück.
uniqueidentifier TDBXDataTypes.WideStringType
sql_variant TDBXDataTypes.VarBytesType


MYSQL

dbExpress stellt die folgenden MYSQL-Datentypzuordnungen bereit:


MYSQL-Typ dbExpress-Typ
int TDBXDataTypes.Int32Type
tinyint TDBXDataTypes.Int8Type
smallint TDBXDataTypes.Int16Type
mediumint TDBXDataTypes.Int32Type
bigint TDBXDataTypes.Int64Type
float TDBXDataTypes.DoubleType
double TDBXDataTypes.DoubleType
decimal TDBXDataTypes.BcdType
numeric TDBXDataTypes.BcdType
timestamp TDBXDataTypes.TimeStampType
datetime TDBXDataTypes.TimeStampType
date TDBXDataTypes.DateType
time TDBXDataTypes.TimeType
year TDBXDataTypes.Int16Type
binary TDBXDataTypes.AnsiStringType
varbinary TDBXDataTypes.AnsiStringType
tinytext TDBXDataTypes.AnsiStringType
text TDBXDataTypes.AnsiStringType
mediumtext TDBXDataTypes.AnsiStringType
longtext TDBXDataTypes.AnsiStringType
tinyblob TDBXDataTypes.BlobType, Untertyp TDBXSubDataTypes.BinarySubType
blob TDBXDataTypes.BlobType, Untertyp TDBXSubDataTypes.BinarySubType
mediumblob TDBXDataTypes.BlobType, Untertyp TDBXSubDataTypes.BinarySubType
longblob TDBXDataTypes.BlobType, Untertyp TDBXSubDataTypes.BinarySubType
bit TDBXDataTypes.VarBytesType
bool TDBXDataTypes.Int8Type
enum TDBXDataTypes.AnsiStringType
set TDBXDataTypes.AnsiStringType
char TDBXDataTypes.WideStringType, wenn der Server UTF-8 verwendet; ansonsten TDBXDataTypes.AnsiStringType
varchar TDBXDataTypes.WideStringType, wenn der Server UTF-8 verwendet; ansonsten TDBXDataTypes.AnsiStringType


Firebird

dbExpress unterstützt nun auch alle Firebird-Datentypen. In der folgenden Tabelle finden Sie die Datentypzuordnungen zwischen dbExpress und Firebird.


Firebird-Typ dbExpress-Typ
integer TDBXDataTypes.Int32Type
bigint TDBXDataTypes.Int64Type
smallint TDBXDataTypes.Int16Type
char TDBXDataTypes.WideStringType, wenn der Server UTF-8 verwendet; ansonsten TDBXDataTypes.AnsiStringType
varchar TDBXDataTypes.WideStringType, wenn der Server UTF-8 verwendet; ansonsten TDBXDataTypes.AnsiStringType
float TDBXDataTypes.DoubleType
double TDBXDataTypes.DoubleType
decimal TDBXDataTypes.BcdType
numeric TDBXDataTypes.BcdType
date TDBXDataTypes.DateType
time TDBXDataTypes.TimeType
timestamp TDBXDataTypes.TimeStampType
blob TDBXDataTypes.BlobType


Oracle

dbExpress unterstützt jetzt alle Oracle 11g-Datentypen, einschließlich der neuen Typen XMLType, Binary_Float und Binary_Double. In der folgenden Tabelle finden Sie die Datentypzuordnungen zwischen dbExpress und Oracle 11g.


Oracle-Typ dbExpress-Typ
bfile TDBXDataTypes.BlobType
blob TDBXDataTypes.BlobType
char TDBXDataTypes.AnsiStringType
clob TDBXDataTypes.AnsiStringType
date TDBXDataTypes.TimeStampType
float TDBXDataTypes.BcdType
binary_float TDBXDataTypes.SingleType
binary_double TDBXDataTypes.DoubleType
interval day to second TDBXDataTypes.IntervalType
interval year to month TDBXDataTypes.IntervalType
long TDBXDataTypes.AnsiStringType
long raw TDBXDataTypes.BytesType
nchar TDBXDataTypes.WideStringType
nclob TDBXDataTypes.WideStringType
number TDBXDataTypes.BcdType
nvarchar2 TDBXDataTypes.WideStringType
raw TDBXDataTypes.BytesType
timestamp TDBXDataTypes.TimeStampType
timestamp with local time zone TDBXDataTypes.TimeStampType
timestamp with time zone TDBXDataTypes.TimeStampType
varchar2 TDBXDataTypes.AnsiStringType
xmltype TDBXDataTypes.AnsiStringType

See Also