Aracılığıyla paylaş


Büyük clr kullanıcı tanımlı türler (odbc)

Bu konu, odbc SQL Server yerel istemci büyük ortak dil çalışma zamanı (clr) kullanıcı tanımlı türler (UDTs) desteklemek için değişiklikler açıklanır.

Büyük clr UDTs için odbc desteği gösteren bir örnek için bkz: Büyük UDTs desteği.

SQL Server yerel istemci büyük clr UDTs desteği hakkında daha fazla bilgi için bkz: Büyük clr kullanıcı tanımlı türler.

Veri formatı

SQL Server yerel istemci SQL_SS_LENGTH_UNLIMITED bir sütunun boyutunu büyük nesne (lob) türleri için 8.000 bayttan daha büyük göstermek için kullanır. SQL Server 2008 ile başlayarak, değerin, büyüklükleri 8.000 bayttan daha büyük olduğunda, clr UDTs için kullanılır.

udt değerleri bayt dizileri temsil edilir. Dönüşümler ve gelen onaltılık dizeleri desteklenir. Hazır bilgi değerleri onaltılık dize "0 x" önekine sahip olarak temsil edilir.

Aşağıdaki tabloda veri türü eşleştirme parametreleri ve sonuç kümelerini gösterir:

SQL Server veri türü

veri türü.

Değer

CLR UDT

SQL_SS_UDT

-151 (sqlncli.h)

Aşağıdaki tabloda karşılık gelen yapı ve odbc c türü açıklanır. Esasen, clr udt ise bir varbinaryek meta veri türüyle.

veri türü.

Bellek düzeni

C veri türü

Değer (sqlext.h)

SQL_SS_UDT

sqlchar *(unsigned char *)

SQL_C_BINARY

SQL_BINARY (-2)

Tanımlayıcı alanları için parametreleri

IPD alanlar döndürülen bilgileri aşağıdaki gibidir:

Alan tanımlayıcısı

SQL_SS_UDT

(uzunluğu daha az veya eşit 8.000 bayt)

SQL_SS_UDT

(8.000 bayttan büyük uzunluğu)

SQL_DESC_CASE_SENSITIVE

SQL_FALSE

SQL_FALSE

SQL_DESC_CONCISE_TYPE

SQL_SS_UDT

SQL_SS_UDT

SQL_DESC_DATETIME_INTERVAL_CODE

0

0

SQL_DESC_DATETIME_INTERVAL_PRECISION

n

SQL_SS_LENGTH_UNLIMITED (0)

SQL_DESC_FIXED_PREC_SCALE

SQL_FALSE

SQL_FALSE

SQL_DESC_LENGTH

n

SQL_SS_LENGTH_UNLIMITED (0)

SQL_DESC_LOCAL_TYPE_NAME

"udt"

"udt"

SQL_DESC_OCTET_LENGTH

n

SQL_SS_LENGTH_UNLIMITED (0)

SQL_DESC_PRECISION

n

SQL_SS_LENGTH_UNLIMITED (0)

SQL_DESC_SCALE

0

0

SQL_DESC_TYPE

SQL_SS_UDT

SQL_SS_UDT

SQL_DESC_TYPE_NAME

"udt"

"udt"

SQL_DESC_UNSIGNED

SQL_TRUE

SQL_TRUE

SQL_CA_SS_UDT_CATALOG_NAME

udt içeren katalog adı.

udt içeren katalog adı.

SQL_CA_SS_UDT_SCHEMA_NAME

udt içeren şema adı.

Şema adı udt içerir.

SQL_CA_SS_UDT_TYPE_NAME

UDT adı.

UDT adı.

SQL_CA_SS_UDT_ASSEMBLY_TYPE_NAME

udt tam adı.

udt tam adı.

udt parametreleri için sql_ca_ss_udt_type_name her zaman aracılığıyla ayarlanmalıdır SQLSetDescField. sql_ca_ss_udt_catalog_name ve sql_ca_ss_udt_schema_name isteğe bağlıdır.

udt Tablo'den farklı bir şema ile aynı veritabanında tanımlı, sql_ca_ss_udt_schema_name ayarlanmış olması gerekir.

udt Tablo'den farklı bir veritabanında tanımlı, sql_ca_ss_udt_catalog_name ve sql_ca_ss_udt_schema_name ayarlanmış olması gerekir.

Eğer herhangi bir hata veya eksikliklerden sql_ca_ss_udt_type_name, sql_ca_ss_udt_catalog_name veya sql_ca_ss_udt_schema_name ayarlarında, tanılama kaydı sqlstate HY000 ve sunucuya özel ileti metni ile oluşturulur.

Sonuçları tanımlayıcısı alanlar

IRD alanlar döndürülen bilgileri aşağıdaki gibidir:

Alan tanımlayıcısı

SQL_SS_UDT

(uzunluğu daha az veya eşit 8.000 bayt)

SQL_SS_UDT

(8.000 bayttan büyük uzunluğu)

SQL_DESC_AUTO_UNIQUE_VALUE

SQL_FALSE

SQL_FALSE

SQL_DESC_CASE_SENSITIVE

SQL_FALSE

SQL_FALSE

SQL_DESC_CONCISE_TYPE

SQL_SS_UDT

SQL_SS_UDT

SQL_DESC_DATETIME_INTERVAL_CODE

0

0

SQL_DESC_DATETIME_INTERVAL_PRECISION

n

SQL_SS_LENGTH_UNLIMITED (0)

SQL_DESC_DISPLAY_SIZE

2n

SQL_SS_LENGTH_UNLIMITED (0)

SQL_DESC_FIXED_PREC_SCALE

SQL_FALSE

SQL_FALSE

SQL_DESC_LENGTH

n

SQL_SS_LENGTH_UNLIMITED (0)

SQL_DESC_LITERAL_PREFIX

"0 x"

"0 x"

SQL_DESC_LITERAL_SUFFIX

""

""

SQL_DESC_LOCAL_TYPE_NAME

"udt"

"udt"

SQL_DESC_OCTET_LENGTH

n

SQL_SS_LENGTH_UNLIMITED (0)

SQL_DESC_PRECISION

n

SQL_SS_LENGTH_UNLIMITED (0)

SQL_DESC_SCALE

0

0

SQL_DESC_SEARCHABLE

SQL_PRED_NONE

SQL_PRED_NONE

SQL_DESC_TYPE

SQL_SS_UDT

SQL_SS_UDT

SQL_DESC_TYPE_NAME

"udt"

"udt"

SQL_DESC_UNSIGNED

SQL_TRUE

SQL_TRUE

SQL_CA_SS_UDT_CATALOG_NAME

udt içeren katalog adı.

udt içeren katalog adı.

SQL_CA_SS_UDT_SCHEMA_NAME

udt içeren şema adı.

udt içeren şema adı.

SQL_CA_SS_UDT_TYPE_NAME

UDT adı.

UDT adı.

SQL_CA_SS_UDT_ASSEMBLY_TYPE_NAME

udt tam adı.

udt tam adı.

SQLColumns ve SQLProcedureColumns (katalog meta veri) tarafından döndürülen sütun meta veri

Aşağıdaki sütun değerleri için UDTs döndürülür:

Sütun adı

SQL_SS_UDT

(uzunluğu daha az veya eşit 8.000 bayt)

SQL_SS_UDT

(8.000 bayttan büyük uzunluğu)

DATA_TYPE

SQL_SS_UDT

SQL_SS_UDT

TYPE_NAME

UDT adı.

UDT adı.

COLUMN_SIZE

n

SQL_SS_LENGTH_UNLIMITED (0)

BUFFER_LENGTH

n

SQL_SS_LENGTH_UNLIMITED (0)

DECIMAL_DIGITS

NULL

NULL

SQL_DATA_TYPE

SQL_SS_UDT

SQL_SS_UDT

SQL_DATETIME_SUB

NULL

NULL

CHAR_OCTET_LENGTH

n

SQL_SS_LENGTH_UNLIMITED (0)

SS_UDT_CATALOG_NAME

udt içeren katalog adı.

udt içeren katalog adı.

SS_UDT_SCHEMA_NAME

udt içeren şema adı.

udt içeren şema adı.

SS_UDT_ASSEMBLY_TYPE_NAME

udt tam adı.

udt tam adı.

Son üç sütun sürücüye özgü sütunları olan. Bunlar, ama sonuç kümesi herhangi bir varolan sürücüye özgü sütunları önce sonra herhangi bir odbc tanımlı sütunlar eklenir SQLColumnsya SQLProcedureColumns.

Hiçbir satır tarafından döndürülen SQLGetTypeInfo, tek tek UDTs veya genel bir tür "udt".

Bağlama ve Dönüşümlerini

SQL desteklenen dönüştürmeleri c veri türleri aşağıdaki gibidir:

Dönüşüm ve:

SQL_SS_UDT

SQL_C_WCHAR

Desteklenen *

SQL_C_BINARY

Desteklenen

SQL_C_CHAR

Desteklenen *

* Ikili veri, onaltılık dize dönüştürülür.

C desteklenen dönüştürmeleri için sql veri türleri aşağıdaki gibidir:

Dönüşüm ve:

SQL_SS_UDT

SQL_C_WCHAR

Desteklenen *

SQL_C_BINARY

Desteklenen

SQL_C_CHAR

Desteklenen *

* Onaltılık dize ikili veri dönüştürme gerçekleşir.

UDTs sql_varıant desteği

UDTs SQL_VARIANT sütunlarda desteklenmez.

UDTs için bcp desteği

UDTs değerleri alınan ve yalnızca karakter veya ikili değerler verilebilir.

UDTs için alt düzey istemci davranışı

UDTs aşağı düzey istemciler, türü eşleştirmesi için şunlardır:

Sunucu sürümü

SQL_SS_UDT

(uzunluğu daha az veya eşit 8.000 bayt)

SQL_SS_UDT

(8.000 bayttan büyük uzunluğu)

SQL Server 2005

UDT

varbinary(max)

SQL Server 2008 ve sonrası

UDT

UDT

Büyük clr UDTs desteklemek odbc işlevleri

Bu bölümde, büyük clr UDTs desteklemek için SQL Server yerel istemci odbc işlevleri değişiklikler açıklanır.

SQLBindCol

udt sonuç sütun değerlerini sql c veri türleri "bağlar ve Dönüşümlerini içinde" açıklandığı gibi dönüştürülür bölümünde, bu konuda.

SQLBindParameter

UDTs için gerekli değerler aşağıdaki gibidir:

veri türü.

Parametertype

ColumnSizePtr

DecimalDigitsPtr

SQL_SS_UDT

(uzunluğu daha az veya eşit 8.000 bayt)

SQL_SS_UDT

n

0

SQL_SS_UDT

(8.000 bayttan büyük uzunluğu)

SQL_SS_UDT

SQL_SS_LENGTH_UNLIMITED (0)

0

SQLColAttribute

UDTs için döndürülen "tanımlayıcı alanlar için sonuçları" açıklandığı gibi değerlerdir bölümünde, bu konuda.

SQLColumns

UDTs için döndürülen "sütun meta verileri tarafından iade SQLColumns ve SQLProcedureColumns (katalog meta veri)" konusunda açıklandığı gibi değerlerdir bölümünde, bu konuda.

SQLDescribeCol

UDTs için döndürülen değerler aşağıdaki gibidir:

veri türü.

DataTypePtr

ColumnSizePtr

DecimalDigitsPtr

SQL_SS_UDT

(uzunluğu daha az veya eşit 8.000 bayt)

SQL_SS_UDT

n

0

SQL_SS_UDT

(8.000 bayttan büyük uzunluğu)

SQL_SS_UDT

SQL_SS_LENGTH_UNLIMITED (0)

0

SQLDescribeParam

UDTs için döndürülen değerler aşağıdaki gibidir:

veri türü.

DataTypePtr

ColumnSizePtr

DecimalDigitsPtr

SQL_SS_UDT

(uzunluğu daha az veya eşit 8.000 bayt)

SQL_SS_UDT

n

0

SQL_SS_UDT

(8.000 bayttan büyük uzunluğu)

SQL_SS_UDT

SQL_SS_LENGTH_UNLIMITED (0)

0

SQLFetch

udt sonuç sütun değerlerini sql c veri türleri "bağlar ve Dönüşümlerini içinde" açıklandığı gibi dönüştürülür bölümünde, bu konuda.

SQLFetchScroll

udt sonuç sütun değerlerini sql c veri türleri "bağlar ve Dönüşümlerini içinde" açıklandığı gibi dönüştürülür bölümünde, bu konuda.

SQLGetData

udt sonuç sütun değerlerini sql c veri türleri "bağlar ve Dönüşümlerini içinde" açıklandığı gibi dönüştürülür bölümünde, bu konuda.

SQLGetDescField

Yeni türleriyle kullanılabilir tanımlayıcısı alanları "tanımlayıcı alanları için parametreleri" açıklanan ve "Tanımlayıcı alanlar için sonuçları" bölümlere, bu konuda.

SQLGetDescRec

UDTs için döndürülen değerler aşağıdaki gibidir:

veri türü.

Tür

Alt tür

Uzunluk

Hassas

Ölçek

SQL_SS_UDT

(uzunluğu daha az veya eşit 8.000 bayt)

SQL_SS_UDT

0

n

n

0

SQL_SS_UDT

(8.000 bayttan büyük uzunluğu)

SQL_SS_UDT

0

SQL_SS_LENGTH_UNLIMITED (0)

SQL_SS_LENGTH_UNLIMITED (0)

0

SQLGetTypeInfo

UDTs için döndürülen "SQLColumns ve SQLProcedureColumns (katalog meta veri) tarafından iade meta verileri" bölümünde açıklandığı gibi değerlerdir bölümünde, bu konuda.

SQLProcedureColumns

UDTs için döndürülen "SQLColumns ve SQLProcedureColumns (katalog meta veri) tarafından iade meta verileri" bölümünde açıklandığı gibi değerlerdir bölümünde, bu konuda.

SQLPutData

udt parametre değerleri c sql veri türleri "bağlar ve Dönüşümlerini içinde" açıklandığı gibi dönüştürülür bölümünde, bu konuda.

SQLSetDescField

Yeni türleriyle kullanılabilir alan tanımlayıcısı açıklanan "tanımlayıcı alanları için parametreleri" ve "Tanımlayıcı alanlar için sonuçları" bölümlere, bu konuda.

SQLSetDescRec

UDTs için izin verilen değerler aşağıdaki gibidir:

veri türü.

Tür

Alt tür

Uzunluk

Hassas

Ölçek

SQL_SS_UDT

(uzunluğu daha az veya eşit 8.000 bayt)

SQL_SS_UDT

0

n

n

0

SQL_SS_UDT

(8.000 bayttan büyük uzunluğu)

SQL_SS_UDT

0

SQL_SS_LENGTH_UNLIMITED (0)

SQL_SS_LENGTH_UNLIMITED (0)

0

SQLSpecialColumns

Değerleri sütunlar için data_type, type_name COLUMN_SIZE buffer_length ve DECIMAL_DIGTS UDTs SQLColumns ve SQLProcedureColumns (katalog meta veri) tarafından "meta verileri iade" konusunda açıklandığı gibi döndürülür bölümünde, bu konuda.

Ayrıca bkz.

Kavramlar

Büyük clr kullanıcı tanımlı türler