Share via


Datentypzuordnung zu ITableDefinition

Beim Erstellen von Tabellen mit der ITableDefinition::CreateTable -Funktion kann der Consumer des OLE DB-Anbieters von SQL Server Native Client SQL Server-Datentypen im pwszTypeName-Element des DBCOLUMNDESC-Arrays angeben, das der Funktion übergeben wird. Gibt der Consumer den Datentyp einer Spalte namentlich an, wird die OLE DB-Datentypzuordnung ignoriert, die durch das wType-Element der DBCOLUMNDESC-Struktur dargestellt wird.

Wenn die Datentypen neuer Spalten mit OLE DB-Datentypen mithilfe des wType-Elements der DBCOLUMNDESC-Struktur angegeben werden, dann ordnet der OLE DB-Anbieter von SQL Server Native Client die OLE DB-Datentypen wie folgt zu:

OLE DB-Datentyp

SQL Server

Datentyp

Zusätzliche Informationen

DBTYPE_BOOL

bit

DBTYPE_BYTES

binary, varbinary, image oder varbinary(max)

Der OLE DB-Anbieter von SQL Server Native Client überprüft den Wert des ulColumnSize-Elements der DBCOLUMNDESC-Struktur. Abhängig von diesem Wert und der Version der SQL Server-Instanz ordnet der OLE DB-Anbieter von SQL Server den Typ image zu.

Wenn der Wert von ulColumnSize kleiner als die maximale Länge einer Spalte des binary-Datentyps ist, dann überprüft der OLE DB-Anbieter von SQL Server das rgPropertySets-Element der DBCOLUMNDESC-Struktur. Wenn DBPROP_COL_FIXEDLENGTH den Wert VARIANT_TRUE hat, ordnet der OLE DB-Anbieter von SQL Server Native Client den Typ binary zu. Hat die Eigenschaft den Wert VARIANT_TRUE, dann ordnet der OLE DB-Anbieter von SQL Server Native Client den Typ varbinary zu. In jedem Fall bestimmt das ulColumnSize-Element der DBCOLUMNDESC-Struktur die Breite der SQL Server-Spalte, die erstellt wird.

DBTYPE_CY

money

DBTYPE_DBTIMESTAMP

datetime

DBTYPE_GUID

uniqueidentifier

DBTYPE_I2

smallint

DBTYPE_I4

int

DBTYPE_NUMERIC

numeric

Der OLE DB-Anbieter von SQL Server Native Client überprüft das bScale-Element und das bScale-Element der DBCOLUMDESC-Struktur, um Genauigkeit und Dezimalstellen der numeric-Spalte zu bestimmen.

DBTYPE_R4

real

DBTYPE_R8

float

DBTYPE_STR

char, varchar, text oder varchar(max)

Der OLE DB-Anbieter von SQL Server Native Client überprüft den Wert des ulColumnSize-Elements der DBCOLUMNDESC-Struktur. Abhängig von diesem Wert und der Version der SQL Server-Instanz ordnet der OLE DB-Anbieter von SQL Server den Typ text zu.

Wenn der Wert von ulColumnSize kleiner als die maximale Länge einer Spalte eines Datentyps für Mehrbyte-Zeichendaten ist, dann überprüft der OLE DB-Anbieter von SQL Server das rgPropertySets-Element der DBCOLUMNDESC-Struktur. Wenn DBPROP_COL_FIXEDLENGTH den Wert VARIANT_TRUE hat, ordnet der OLE DB-Anbieter von SQL Server Native Client den Typ char zu. Hat die Eigenschaft den Wert VARIANT_TRUE, dann ordnet der OLE DB-Anbieter von SQL Server Native Client den Typ varchar zu. In jedem Fall bestimmt das ulColumnSize-Element der DBCOLUMNDESC-Struktur die Breite der SQL Server-Spalte, die erstellt wird.

DBTYPE_UDT

UDT

Die folgenden Informationen werden von ITableDefinition::CreateTable in DBCOLUMNDESC-Strukturen verwendet, wenn UDT-Spalten erforderlich sind:

  • pwSzTypeNamewird ignoriert.

  • rgPropertySets muss einen DBPROPSET_SQLSERVERCOLUMN-Eigenschaftensatz einschließen, wie im Abschnitt über DBPROPSET_SQLSERVERCOLUMN unter Verwenden von benutzerdefinierten Typen beschrieben.

DBTYPE_UI1

tinyint

DBTYPE_WSTR

nchar, nvarchar, ntext oder nvarchar(max)

Der OLE DB-Anbieter von SQL Server Native Client überprüft den Wert des ulColumnSize-Elements der DBCOLUMNDESC-Struktur. Abhängig von diesem Wert ordnet der OLE DB-Anbieter von SQL Server den Typ ntext zu.

Wenn der Wert von ulColumnSize kleiner als die maximale Länge einer Spalte eines Datentyps für Unicode-Zeichendaten ist, dann überprüft der OLE DB-Anbieter von SQL Server das rgPropertySets-Element der DBCOLUMNDESC-Struktur. Wenn DBPROP_COL_FIXEDLENGTH den Wert VARIANT_TRUE hat, ordnet der OLE DB-Anbieter von SQL Server Native Client den Typ nchar zu. Hat die Eigenschaft den Wert VARIANT_TRUE, dann ordnet der OLE DB-Anbieter von SQL Server Native Client den Typ nvarchar zu. In jedem Fall bestimmt das ulColumnSize-Element der DBCOLUMNDESC-Struktur die Breite der SQL Server-Spalte, die erstellt wird.

DBTYPE_XML

XML

HinweisHinweis

Beim Erstellen einer neuen Tabelle ordnet der OLE DB-Anbieter von SQL Server nur die in der vorstehenden Tabelle angegebenen Enumerationswerte für OLE DB-Datenwerte zu. Durch den Versuch, eine Tabelle mit einer Spalte eines anderen OLE DB-Datentyps zu erstellen, wird ein Fehler erzeugt.

Siehe auch

Konzepte