Share via


xml veri türleri'ni kullanma

SQL Server 2005tanıtılan bir xml veri türü xml belgeleri depolamanızı sağlar ve parçaları içinde bir SQL Serververitabanı. Xml veri türü olan bir yerleşik veri türü SQL Serverve diğer yerleşik türleri, bazı şekillerde gibi int ve varchar. Diğer yerleşik türleri ile sen-ebilmek kullanma gibi xml veri türü olarak bir tablo; oluştururken bir sütun türü bir değişken türü, bir parametre türü veya bir işlevin dönüş türü; veya cast ve convert işlevleri.

Programlama konuları

Bu isteğe bağlı olarak örneğin dosyanın kodlamasını belirtir bir xml üstbilgisi içerebilir xml self-describing olabilir:

<?xml version="1.0" encoding="windows-1252"?><doc/>

xml standardı, nasıl bir xml işlemci bir belge için belge ilk birkaç baytı incelenerek kullanılan kodlama algılayabilir açıklar. Belgesinde belirtilen kodlama ile çatışmaya uygulama tarafından belirtilen kodlama için fırsatlar vardır. İlişkili parametreleri olarak geçirilen belgeler için xml ile ikili veri olarak kabul edilir SQL Server, bu nedenle hiçbir dönüşüm yapılır ve sorunsuz belge içinde belirtilen kodlamayı xml Ayrıştırıcısı kullanabilirsiniz. Ancak wstr bağlı xml verileri, ardından belgeyi Unicode olarak kodlandığını uygulama sağlamalıdır. Bu belgeyi değiştirme Unicode kodlama ve belgeyi seri hale getirilirken bir dom yükleme Tail. Bu yapılmazsa, veri dönüşümleri, geçersiz ya da bozuk XML sonuç ortaya çıkabilir.

Orada da çatışma için potansiyel xml harflerin belirtildiğinde. Örneğin aşağıdaki geçersiz:

INSERT INTO xmltable(xmlcol) VALUES('<?xml version="1.0" encoding="UTF-16"?><doc/>')

INSERT INTO xmltable(xmlcol) VALUES(N'<?xml version="1.0" encoding="UTF-8"?><doc/>')

SQL Server Native Client OLE DB Sağlayıcısı

dbtype_xml olur yeni bir veri türü için xml belirli SQL Serveryerel istemci ole db sağlayıcısını. Buna ek olarak, xml verilerini varolan ole db türü dbtype_bytes, dbtype_wstr, dbtype_bstr, dbtype_xml, dbtype_str, dbtype_varıant ve dbtype_ıunknown erişilebilir. Adresinden alındı xml bir tür sütunları depolanan veriler bir SQL Serveryerel istemci ole db sağlayıcısı satır kümesi aşağıdaki biçimlerde:

  • Metin dizesi

  • Bir ISequentialStream

[!NOT]

SQL ServerYerel istemci ole db sağlayıcısı sax okuyucu içermez ancak ISequentialStream sax ve dom nesnelerine MSXML kolayca geçirilebilir.

ISequentialStream büyük xml belgelerin alımı için kullanılan kullanımı olmalıdır. Diğer büyük bir değer türleri için kullandığınız teknikleri, xml için de geçerlidir. Daha fazla bilgi için, bkz. Büyük bir değer türleri kullanarak.

Adresinden alındı satır kümesi xml de., türü sütunlarda depolanan veri eklendiğinde, veya her zamanki arabirimleri üzerinden bir uygulama gibi IRow::GetColumns, IRowChange::SetColumns, ve ICommand::Execute. Benzer şekilde alma talebiyle,-ebilmek geçmek bir uygulama programı ya da bir metin dizesi veya bir ISequentialStream için SQL Serveryerel istemci ole db sağlayıcısını.

[!NOT]

xml verilerini dize biçiminde göndermek için ISequentialStream arabirimi, almanız gereken ISequentialStream dbtype_ıunknown belirterek ve ayarlamak onun pObjectbağımsız bağlamada null.

Alınan xml verileri tüketici arabellek çok küçük olması nedeniyle kesilir, boy uzunluğu bilinmeyen yani 0xffffffff döndürülebilir. Bu gerçek verileri öncesinde uzunluğu bilgi göndermeden istemciye akışla bir veri türü olarak uygulanması ile tutarlıdır. Zaman sağlayıcı tüm değeri gibi ara belleğe bazı durumlarda gerçek uzunluğu döndürülebilir IRowset::GetData ve nerede veri dönüştürme gerçekleştirilir.

xml verilerini SQL Server'a gönderilen ikili veri olarak sunucu tarafından değerlendirilir. Bu herhangi bir dönüşüm oluşmasını önler ve xml parser xml kodlama otomatik algılama sağlar. Böylece, giriş olarak kabul edilmesi bir daha geniş aralığı, xml belgeleri (örneğin bu kodlanmış olarak utf-8) SQL Server.

Giriş xml dbtype_wstr ilişkili ise, uygulama herhangi bir bozulma olasılığını önlemek için istenmeyen veri dönüşümleri tarafından kodlanmış Unicode zaten emin olmanız gerekir.

Veri bağlamaları ve Coercions

Aşağıdaki tabloda açıklanmıştır kullanarak listelenen veri türleri ile oluşan baskı ve ciltleme SQL Server   xml veri türü.

Veri türü

Sunucuya

XML

Sunucuya

Olmayan xml

Sunucudan

XML

Sunucudan

Olmayan xml

DBTYPE_XML

Geçmesine6,7

Hata1

OK11, 6

Hata8

DBTYPE_BYTES

Geçmesine6,7

N/A2

OK 11, 6

N/A 2

DBTYPE_WSTR

Geçmesine6,10

N/A 2

Tamam4, 6, 12

N/A 2

DBTYPE_BSTR

Geçmesine6,10

N/A 2

OK 3

N/A 2

DBTYPE_STR

Tamam6, 9, 10

N/A 2

Tamam5, 6, 12

N/A 2

DBTYPE_IUNKNOWN

Bayt akışı ile ISequentialStream7

N/A 2

Bayt akışı ile ISequentialStream11

N/A 2

DBTYPE_VARIANT (VT_UI1 | VT_ARRAY)

Geçmesine6,7

N/A 2

Yok

N/A 2

DBTYPE_VARIANT (VT_BSTR)

Geçmesine6,10

N/A 2

OK3

N/A 2

1dbtype_xml ile belirtilenden başka bir sunucu yazarsanız, ICommandWithParameters::SetParameterInfo ve erişimcisi türü dbtype_xml, deyimi yürütüldüğünde bir hata oluşur (db_e_errorsoccurred, parametre durumu ise dbstatus_e_badaccessor); Aksi takdirde veriler sunucuya gönderilir, ancak sunucu parametre veri türü için XML örtülü dönüştürme olduğunu belirten bir hata iletisi döndürür.

2Bu konunun kapsamı dışındadır.

3utf-16, hiçbir bye düzeni işareti (bom), kodlama belirtime, hiçbir null sonlandırma biçimidir.

4utf-16, hiçbir bom kodlama belirtime null sonlandırma biçimidir.

5Biçimidir, çok baytlı karakterleri, istemci kod sayfası null Sonlandırıcı ile kodlanmış. Bu bağlama kesinlikle önerilmez dönüşüm sunucudan sağlanan Unicode veri bozulması, neden.

6by_ref-var olmak kullanılmış.

7utf-16 veri bir bom ile başlamalı. Yoksa, kodlamayı düzgün sunucu tarafından tanınmayabilir.

8Doğrulama ne de erişeni zaman oluşturabilir, veya, getir zaman. Durumu DBBINDSTATUS_UNSUPPORTEDCONVERSION için ayarlanmış bağlama db_e_errorsoccurred hatadır.

9Veri Unicode'a sunucusuna gönderilmeden önce istemci kod sayfası kullanılarak dönüştürülür. İstemci kod sayfası belge kodlaması eşleşmezse, böylece bu bağlama önerilmez, bu veri bozulması, neden olabilir.

10a ürün Reçetesi, sunucuya gönderilen verileri her zaman eklenir. Verileri bir bom ile başlamış, bu iki ürün reçeteleri arabellek başında sonuçlanır. Sunucu kodlama utf-16 tanımak için ilk ürün Reçetesi kullanır ve sonra atar. İkinci ürün Reçetesi sıfır genişlikli bölünemez boşluk karakteri yorumlanır.

11Biçimi olan utf-16, kodlama belirtime verileri sunucudan alınan ürün Reçetesi eklenir. Boş bir dize sunucu tarafından döndürülen bir ürün Reçetesi hala uygulamaya döndürülür. Tek sayıda bayt arabellek uzunluğu ise, verileri doğru şekilde kesilir. Topakları tüm değer döndürülürse, onlar doğru değer katmak için birleştirilmiş.

12Arabellek uzunluğu ikiden az karakter--yani, null sonlandırma--yeterli alan ise taşma hata bildirilir.

[!NOT]

Veri null xml değerleri döndürülür.

xml standardı, utf-16 kodlanmış bir bayt sırası işareti (bom), utf-16 karakter kodunu 0xFEFF başlatmak için xml gerektirir. wstr ve bstr bağları ile çalışırken SQL Serveryerel istemci gerektirmez veya kodlama bağlama tarafından örtülü bir ürün Reçetesi ekleyin. BAYT, xml veya IUNKNOWN ile bağlarını çalışırken, niyet basitlik ilgili diğer xml işlemcileri ve depolama sistemleri ile sağlamaktır. Bir ürün Reçetesi olmalı bu durumda xml mevcut ile utf-16 kodlanmış ve ilk birkaç bayt değerini inceleyerek kodlama (SQL Server dahil olmak üzere) xml işlemcilerin çoğunluğu deduces beri uygulama gerçek kodlama ile ilgili değil. Alınan xml verilerini SQL Serveryerel istemci bayt, xml veya IUNKNOWN kullanarak bağları her zaman kodlanmış utf-16 Ürün Reçetesi ve bir katıştırılmış kodlama bildirimi olmayan.

ole db Çekirdek Hizmetleri tarafından sağlanan veri dönüşümleri (IDataConvert) dbtype_udt için geçerli değildir.

Veriler sunucuya gönderilirken doğrulama yapılır. İstemci taraflı doğrulamayı ve kodlama değişiklikleri uygulamanız tarafından işleneceğini ve size doğrudan xml verilerini işlemek değil yerine bir dom ya da sax okuyucu bunu işlemek için kullanmanız gerekir ki önerilir.

dbtype_null ve dbtype_empty giriş parametreleri için çıkış parametreleri veya sonuçları ancak bağlanabilir. Zaman bağlı giriş parametreleri için durum DBSTATUS_S_ISNULL veya dbstatus_s_default olarak ayarlanmalıdır.

dbtype_xml için dbtype_empty dönüştürülür ve dbtype_null, dbtype_empty dbtype_xml için dönüştürülür, ancak dbtype_null dbtype_xml için dönüştürülür. Bu, dbtype_wstr ile tutarlıdır.

DBTYPE_IUNKNOWN, desteklenen bağlama (yukarıdaki tabloda gösterildiği) olmakla birlikte, hiçbir dönüşümleri dbtype_xml ve dbtype_ıunknown arasında bulunmaktadır. DBTYPE_IUNKNOWN dbtype_byref ile kullanılamaz.

ole db satır kümesi eklemeler ve değişiklikler

SQL ServerYerel istemci yeni değerler ekler veya birçok çekirdek ole db şema satır kümeleri değiştirir.

procedure_parameters şeması satır ve sütunlar

SÜTUNLAR ve procedure_parameters şema satır kümeleri eklemeler aşağıdaki sütunları içerir.

Sütun adı

Tür

Açıklama

SS_XML_SCHEMACOLLECTION_CATALOGNAME

DBTYPE_WSTR

xml şema koleksiyonu tanımlandığı bir katalog adı. Olmayan xml sütun veya un-typed xml sütun null.

SS_XML_SCHEMACOLLECTION_SCHEMANAME

DBTYPE_WSTR

xml şema koleksiyonu tanımlandığı bir şema adı. Olmayan xml sütun veya un-typed xml sütun null.

SS_XML_SCHEMACOLLECTIONNAME

DBTYPE_WSTR

xml şema koleksiyonu adı. Olmayan xml sütun veya un-typed xml sütun null.

PROVIDER_TYPES şema satır kümesi

PROVIDER_TYPES şema satır kümesi içinde 0 COLUMN_SIZE değerdir xml veri türü ve data_type dbtype_xml olur.

ss_xmlschema şeması satır kümesi

Yeni şema satır kümesi ss_xmlschema xml şema bilgileri almak, istemciler için tanıtıldı. ss_xmlschema satır kümesi aşağıdaki sütunları içerir.

Sütun adı

Tür

Açıklama

SCHEMACOLLECTION_CATALOGNAME

DBTYPE_WSTR

xml koleksiyonu katalog aittir.

SCHEMACOLLECTION_SCHEMANAME

DBTYPE_WSTR

xml koleksiyonu şema aittir.

SCHEMACOLLECTIONNAME

DBTYPE_WSTR

xml şema koleksiyonu aksi halde null yazılı xml sütunlar için adı.

TARGETNAMESPACEURI

DBTYPE_WSTR

Bir xml şema hedef ad alanı.

SCHEMACONTENT

DBTYPE_WSTR

xml şema içeriği.

Her xml şema kapsamlı katalog adı, şema adı, şema koleksiyonu adı ve hedef ad alanı Tekdüzen Kaynak Tanımlayıcısı (URI). Ayrıca, DBSCHEMA_XML_COLLECTIONS adlı yeni bir GUID de tanımlanır. Kısıtlamalar ve ss_xmlschema şema satır kümesi için kısıtlanmış sütun sayısını aşağıdaki şekilde tanımlanmıştır.

GUID

Kısıtlamaları sayısı

Kısıtlanmış sütun

DBSCHEMA_XML_COLLECTIONS

4

SCHEMACOLLECTION_CATALOGNAME

SCHEMACOLLECTION_SCHEMANAME

SCHEMACOLLECTIONNAME

TARGETNAMESPACEURI

ole db özellik eklemeleri ve değişiklikler ayarlayın

SQL ServerYerel istemci yeni değerler ekler veya birçok çekirdek ole db özellik kümeleri değiştirir.

dbpropset_sqlserverparameter özellik kümesi

Desteklemek için xml veri türünü ole db üzerinden SQL Serveriçin aşağıdaki değerleri içeren yeni dbpropset_sqlserverparameter özellik kümesi, yerel istemci uygular.

Ad

Tür

Açıklama

SSPROP_PARAM_XML_SCHEMACOLLECTION_CATALOGNAME

DBTYPE_WSTR

xml şema koleksiyonu tanımlandığı bir katalog (veritabanı) adı. sql üç bölümlü adı tanımlayıcı bir parçası.

SSPROP_PARAM_XML_SCHEMACOLLECTION_SCHEMANAME

DBTYPE_WSTR

Bir xml şeması içinde şema koleksiyonu adı. Üç - part sql adı tanımlayıcı bir parçası.

SSPROP_PARAM_XML_SCHEMACOLLECTIONNAME

DBTYPE_WSTR

Katalog sql üç - bölüm adı tanımlayıcı bir parçası içinde xml şema koleksiyonu adı.

dbpropset_sqlservercolumn özellik kümesi

Tabloların oluşturulmasını desteklemek için oluşturma ITableDefinition arabirimi, SQL Serveryerel istemci dbpropset_sqlservercolumn özellik kümesi üç yeni sütun ekler.

Ad

Tür

Açıklama

SSPROP_COL_XML_SCHEMACOLLECTION_CATALOGNAME

VT_BSTR

Yazılı xml sütunlar için bu özelliği katalog adını belirten bir dize, xml şeması saklandığı yerdir. Diğer sütun türleri için bu özellik boş bir dize döndürür.

SSPROP_COL_XML_SCHEMACOLLECTION_SCHEMANAME

VT_BSTR

Yazılı xml sütunlar için bu özellik bu sütunu tanımlayan xml şema adını belirten bir dizedir.

SSPROP_COL_XML_SCHEMACOLLECTIONNAME

VT_BSTR

Yazılı xml sütunlar için bu özelliği değeri tanımlayan xml şema koleksiyonu şema adını belirten bir string ' dir.

Gibi ssprop_param değerleri, tüm bu özellikler isteğe bağlıdır ve varsayılan boş. SSPROP_COL_XML_SCHEMACOLLECTION_CATALOGNAME ve SSPROP_COL_XML_SCHEMACOLLECTION_SCHEMANAME sadece olabilir SSPROP_COL_XML_SCHEMACOLLECTIONNAME belirtilirse, belirtilen. xml sunucuya geçerken, bu değerler varsa geçerli veritabanı ve veri şemaya göre denetlenir örneği karşı varlığını (geçerlilik) denetlenir. Her durumda, geçerli tüm boş veya dolu tüm bunlar.

ole db arabirim eklemeleri ve değişiklikler

SQL ServerYerel istemci yeni değerler ekler veya birçok arabirimleri ole db Çekirdek değiştirir.

ISSCommandWithParameters arabirimi

Desteklemek için xml veri türünü ole db üzerinden SQL Serveryerel istemci uygular gibi ek değişiklikleri ISSCommandWithParameters arabirimi. Bu yeni arabirimi çekirdek ole db arabirim devralan ICommandWithParameters. Üç yöntem devralınan ek olarak ICommandWithParameters; GetParameterInfo, MapParameterNames, ve SetParameterInfo; ISSCommandWithParameters sağlayan GetParameterProperties ve SetParameterProperties sunucusu belirli veri türlerini işlemesi için kullanılan yöntem.

[!NOT]

ISSCommandWithParameters arabirimi de yapar yeni ssparamprops kullanan yapısı.

IColumnsRowset arabirimi

SQL ServerYerel istemci ekler aşağıdaki SQL Server-Belirli sütunları döndürülen satır kümesi IColumnRowset::GetColumnsRowset yöntemi. Bu sütun, bir xml şema koleksiyonu üç bölümlü adı içerir. Olmayan xml sütunları veya yazılmamış xml sütunlar için varsayılan değer NULL tüm üç sütun atın.

Sütun adı

Tür

Açıklama

DBCOLUMN_SS_XML_SCHEMACOLLECTION_CATALOGNAME

DBTYPE_WSTR

xml şema koleksiyonu katalog ait olduğu,

Aksi halde null.

DBCOLUMN_SS_XML_SCHEMACOLLECTION_SCHEMANAME

DBTYPE_WSTR

xml şema koleksiyonu şema aittir. Aksi halde null.

DBCOLUMN_SS_XML_SCHEMACOLLECTIONNAME

DBTYPE_WSTR

Aksi halde null yazılı xml sütun xml şema koleksiyonu adı.

IRowset arabirimi

Bir xml sütun xml örneği üzerinden alınan IRowset::GetData yöntemi. İstemci tarafından belirtilen bağlama bağlı olarak, bir xml örneği veya arabirim üzerinden dbtype_ıunknown dbtype_bstr, dbtype_wstr, dbtype_varıant, dbtype_xml, dbtype_str, dbtype_bytes olarak alınabilir. Tüketici dbtype_bstr, dbtype_wstr veya dbtype_varıant belirtiyorsa, xml örneği kullanıcı için sağlayıcı dönüştürür türü istendi ve karşılık gelen bağlamada belirtilen konum içine koydu.

Tüketici dbtype_ıunknown belirtirse ve ayarlar pObjectbağımsız değişkeni null veya kümeleri pObjectIID_ISequentialStream bağımsız değişkeni, sağlayıcının döndürdüğü bir ISequentialStream böylece tüketici-ebilmek akarsu sütun xml verileri tüketici arayüzü. ISequentialStream Unicode karakter akışı olarak xml verileri döndürür.

Bir xml değerini döndüren dbtype_ıunknown için bağlı, sağlayıcı bir boyut değeri raporlar sizeof (IUnknown *). Bu yaklaşım ne zaman tam sütun boyutu belirlenemiyor sütun ve dbtype_ıunknown/ISequentialStream dbtype_ıunknown ya da DBTYPE_IDISPATCH bağlı olduğunda alınan ile tutarlı olduğunu unutmayın.

IRowsetChange arabirimi

Tüketici-ebilmek güncelleştirmek bir xml örneği bir sütundaki iki yolu vardır. Depolama nesnesi aracılığıyla ilki olan ISequentialStream sağlayıcı tarafından hazırlandı. Tüketici-ebilmek seslenmek ISequentialStream::Write sağlayıcı tarafından döndürülen xml örneği doğrudan güncellemek için yöntem.

İkinci yaklaşım geçer IRowsetChange::setData veya IRowsetChange::InsertRow yöntemleri. Bu yaklaşımda, tüketicinin arabelleğinde xml örneği bir binding dbtype_bstr, dbtype_wstr, dbtype_varıant, dbtype_xml veya dbtype_ıunknown türü belirtilebilir.

dbtype_bstr, dbtype_wstr veya dbtype_varıant durumunda sağlayıcı uygun sütuna tüketici arabellekte bulunan xml örneği depolar.

DBTYPE_IUNKNOWN/ISequentialStream durumunda tüketici herhangi bir depolama nesnesi belirtmiyor tüketici oluşturmanız gerekir bir ISequentialStream önceden nesne, nesnenin xml belgesiyle ilişkilendirmek ve sonra nesneyi sağlayıcısı üzerinden geçmek IRowsetChange::setData yöntemi. Tüketici-ebilmek da yaratmak bir depolama nesnesi, pObject bağımsız değişkeni ayarlamak için IID_ISequentialStream, oluşturmak bir ISequentialStream nesnesini ve sonra ISequentialStream itiraz IRowsetChange::setData yöntemi. Her iki durumda da, sağlayıcı aracılığıyla xml nesnesini alabilirsiniz ISequentialStream nesne ve uygun bir sütuna yerleştirin.

IRowsetUpdate arabirimi

IRowsetUpdate arabirimi gecikmeli güncelleştirme işlevselliği sağlar. Satır kümeleri için kullanılabilir veri tüketici aramaları kadar diğer hareketler için mevcut yapılmaz IRowsetUpdate:Update yöntemi.

IRowsetFind arabirimi

IRowsetFind::FindNextRow yöntemi ile çalışmıyor xml veri türü. Ne zaman IRowsetFind::FindNextRow denir ve hAccessordeğişkeni dbtype_xml sütun belirtir, DB_E_BADBINDINFO döndü. Bu arandı sütun türüne bakılmaksızın gerçekleşir. Diğer tüm bağlama türleri için FindNextRow db_e_badcompareop ile aranacak sütun ise başarısız xml veri türü.

SQL Server yerel istemci odbc sürücüsü

De SQL Serveryerel istemci odbc sürücüsü, bazı değişiklikler yapılmış çeşitli işlevleri desteklemek üzere xml veri türü.

SQLColAttribute

SQLColAttribute işlevi, SQL_CA_SS_XML_SCHEMACOLLECTION_CATALOG_NAME, SQL_CA_SS_XML_SCHEMACOLLECTION_SCHEMA_NAME ve sql_ca_ss _XML_SCHEMACOLLECTION_NAME de dahil olmak üzere, üç yeni alan tanımlayıcıları vardır.

SQL ServerYerel istemci odbc sürücüsü SQL_SS_LENGTH_UNLIMITED SQL_DESC_DISPLAY_SIZE ve sql_desc_length sütunlar için raporları.

SQLColumns

SQLColumns işlevi, SS_XML_SCHEMACOLLECTION_CATALOG_NAME, SS_XML_SCHEMACOLLECTION_SCHEMA_NAME ve SS_XML_SCHEMACOLLECTION_NAME gibi üç yeni sütun vardır. Varolan type_name sütun xml türü adını belirtmek için kullanılır ve bir xml türü sütun veya parametre data_type sql_ss_xml.

SQL ServerYerel istemci odbc sürücüsü SQL_SS_LENGTH_UNLIMITED COLUMN_SIZE ve char_octet_length değerleri bildiriyor.

SQLDescribeCol

SQL ServerYerel istemci odbc sürücüsü, zaman içinde sütun boyutu belirlenemiyor SQL_SS_LENGTH_UNLIMITED raporlar SQLDescribeCol işlevi.

SQLGetTypeInfo

SQL ServerYerel istemci odbc sürücüsü olarak için en fazla COLUMN_SIZE SQL_SS_LENGTH_UNLIMITED raporlar xml veri türü Sqlgettypeınfo işlevi.

SQLProcedureColumns

SQLProcedureColumns işlevi vardır olarak aynı sütuna eklenen SQLColumns işlevi.

SQL ServerYerel istemci odbc sürücüsü olarak için en fazla COLUMN_SIZE SQL_SS_LENGTH_UNLIMITED raporlar xml veri türü.

Desteklenen dönüştürmeleri

c veri türleri için sql dönüştürürken sql_c_wchar, SQL_C_BINARY ve sql_c_char tüm sql_ss_xml için aşağıdaki stipulations ile dönüştürülebilir:

  • sql_c_wchar: Null sonlandırma ile utf-16, hiçbir bayt sırası işareti (bom) biçimidir.

  • SQL_C_BINARY: Hiçbir null sonlandırma ile utf-16, biçimidir. Ürün Reçetesi, sunucudan alınan verilere eklenir. Boş bir dize sunucu tarafından döndürülen bir ürün Reçetesi hala uygulamaya döner. Tek sayıda bayt arabellek uzunluğu ise veri işe doğru kesilir. Tüm değeri, onlar doğru değeri geniş için birleştirilmiş parçaları döndürülürse

  • sql_c_char: İstemci kod sayfası null sonlandırma ile kodlanmış çok baytlı karakter biçimindedir. Böylece bu bağlama kesinlikle önerilmez dönüşüm sunucudan veri bozulması, sağlanan utf-16 neden olabilir.

c sql veri türleri dönüştürürken sql_c_wchar, SQL_C_BINARY ve sql_c_char tüm sql_ss_xml için aşağıdaki stipulations ile dönüştürülebilir:

  • sql_c_wchar: Bir ürün Reçetesi ise her zaman eklenmektedir sunucuya gönderilen veri. Verileri bir bom ile başlamış, bu iki ürün reçeteleri arabellek başında sonuçlanır. Sunucu ilk ürün Reçetesi kodlama utf-16 tanımak ve sonra atmak için kullanır. İkinci ürün Reçetesi sıfır genişlikli bölünemez boşluk karakteri yorumlanır.

  • SQL_C_BINARY: Dönüştürme gerçekleştirilir ve verileri "gibi." sunucusuna geçirilir utf-16 veri bir bom ile başlamalıdır; yoksa, kodlamayı düzgün sunucu tarafından tanınmayabilir.

  • sql_c_char: Veri utf-16 için istemcide dönüştürülür ve adil sql_c_wchar (ürün Reçetesi ek dahil) sunucuya gönderilen. Eğer xml değil kodlanmış istemci kod sayfası bu veri bozulmasına neden olabilir.

xml standardı, utf-16 kodlanmış bir bayt sırası işareti (bom), utf-16 karakter kodunu 0xFEFF başlatmak için xml gerektirir. SQL_C_BINARY bağlama ile çalışırken SQL Serveryerel istemci gerektirmez veya kodlama bağlama tarafından örtülü bir ürün Reçetesi ekleyin. Niyet, basitlik ilgili diğer xml işlemcileri ve depolama sistemleri ile sağlamaktır. Ürün Reçetesi olmalı bu durumda mevcut ile utf-16 kodlanmış xml ve uygulama gerçek kodlamasıyla çünkü ilgili olmayan xml işlemcilerin çoğunluğu (dahil SQL Server) ilk birkaç bayt değerini inceleyerek kodlama anlamak. Alınan xml verilerini SQL Serveryerel istemci SQL_C_BINARY kullanarak bağları her zaman utf-16 Ürün Reçetesi ve bir katıştırılmış kodlama bildirimi olmadan kodlanmıştır.

Ayrıca bkz.

Başvuru

ISSCommandWithParameters (ole db)

Diğer Kaynaklar

SQL Server yerel istemci özellikleri