dbExpress-Datentypzuordnung für unterstützte Datenbanken
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.
Inhaltsverzeichnis
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 |