xml veri türlerini kullanmak
SQL Server 2005tanıtılan bir xml veri türü, xml belgelerini depolamak olanak tanıyan, parçacık bir SQL Server veritabanı.The xml data type is a built-in data type in SQL Server, and is in some ways similar to other built-in types, such as int and varchar.Diðer yerleþik türlerle kullanabileceğiniz gibi xml veri türü; tablo oluştururken, bir sütun tipi olarak bir parametre türü bir değişken türü veya bir işlev-dönüş türü; veya cast ve convert işlevleri.
Programlama hakkında önemli noktalar
İsteğe bağlı olarak belge, örneğin kodlamasını belirtir bir xml üstbilgisi içerebilir, xml bağımsızdırlar olabilir:
<?xml version="1.0" encoding="windows-1252"?><doc/>
xml standardı nasıl bir xml iþlemcisi açıklanmıştır algılamak bir belge için belge ilk birkaç baytı incelenerek kullanılan kodlama.Belgesinde belirtilen kodlama ile çakışan uygulama tarafından belirtilen kodlama için fırsatlar vardır.İlişkili parametreleri olarak geçirilen belgeler için xml ikili veri olarak kabul SQL Server, böylece hiçbir dönüşümleri yapılır ve xml Ayrıştırıcısı kullanabilirsiniz kodlama sorunları olmadan belge içinde belirtilenAncak, wstr bağlı xml verileri, daha sonra uygulama belgesi Unicode olarak kodlandığını emin olmalısınız.Unicode kodlama ve belgeyi seri hale getiriliyor değiştirmeyi DOM'ye belgeyi yüklemeyi gerektirdiği.Bu yapılmazsa, veri dönüşümleri, geçersiz veya bozuk XML sonuç ortaya çıkabilir.
Var. Ayrıca çakışma için olası xml biçimde belirtildiğindeÖrneğin geçersiz şunlardır:
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ı
Yeni bir veri türü için xml biçiminde özel dbtype_xml olur SQL Server yerel istemci ole db sağlayıcı.Buna ek olarak, xml verilerini varolan ole db türü dbtype_bytes, dbtype_wstr, dbtype_bstr, dbtype_xml, dbtype_str, DBTYPE_VARIANT ve DBTYPE_IUNKNOWN erişilebilir.Depolanan veri sütuns türü xml alınan gelen bir sütun , bir SQL Server yerel istemci ole db sağlayıcı satır kümesi aşağıdaki biçimlerde:
Metin dizesi
Bir ISequentialStream
Not
The SQL Server Native Client OLE DB provider does not include a SAX reader, but the ISequentialStream can be easily passed to SAX and DOM objects in MSXML.
ISequentialStream olması gereken büyük xml belgelerinin alma için kullanılan kullanın.Diğer büyük bir değer türleri için kullandýðýnýz teknikleri ayný þekilde, xml için de geçerlidir.Daha fazla bilgi için bkz: Büyük bir değer türleri'ni kullanma.
Bir satır kümesi xml de alınan, türü sütunlarda depolanan veri eklendiğinde veya her zamanki arabirimleri üzerinden bir uygulama gibi güncelleştirildiğinde IRow::GetColumns, IRowChange::SetColumns, ve ICommand::Execute.Benzer şekilde alma böyle bir uygulama programı ya da bir metin iletebilirsiniz dize veya bir ISequentialStream için SQL Server yerel istemci ole db sağlayıcı.
Not
xml verilerini dize biçiminde göndermek için ISequentialStream arabirim olmalıdır elde ISequentialStream DBTYPE_IUNKNOWN belirterek ve küme , pObject bağımsız değişkeni null bağlama.
Çok küçük olan tüketici arabellek nedeniyle alınan xml verilerini kesilir, uzunluğu uzunluğu bilinmeyen demektir 0xffffffff döndürülebilir.Bunun için güncelleştirmeleri içeren bir veri türü olarak uygulaması ile tutarlı istemci önünde gerçek veri uzunluğu bilgi gönderme olmadan.Sağlayıcı tüm değer gibi arabelleğe olduğunda, bazı durumlarda gerçek uzunluk döndürülebilir IRowset::GetData ve veri dönüşümü burada gerçekleştirilir.
xml verilerini sql Server'a gönderilen sunucu tarafından ikili veri olarak kabul edilir.Bu, tüm dönüştürmeleri oluşmasını önler ve xml kodlama otomatik algılamak xml Ayrıştırıcısı sağlar.Böylece, giriş olarak kabul edilmesi bir daha geniş aralık, xml belgeleri (örneğin bu kodlanmış olarak utf-8) SQL Server.
Giriş xml dbtype_wstr ilişkili ise, uygulamanın, zaten Bozulması olasılığını önlemek için istenmeyen veri dönüşümleri tarafından Unicode olarak kodlandığını emin olmanız gerekir.
Veri bağlamaları ve Coercions
The following table describes the binding and coercion that occurs when using the listed data types with the SQL Server xml data type.
Veri türü |
Sunucuya XML |
Sunucuya xml |
Sunucudan XML |
Sunucudan xml |
---|---|---|---|---|
DBTYPE_XML |
Geçmesine6,7 |
Hata1 |
OK11, 6 |
Hata8 |
DBTYPE_BYTES |
Geçmesine6,7 |
N/A2 |
OK11, 6 |
N/A2 |
DBTYPE_WSTR |
Geçmesine6,10 |
N/A2 |
OK4, 6, 12 |
N/A2 |
DBTYPE_BSTR |
Geçmesine6,10 |
N/A2 |
OK 3 |
N/A2 |
DBTYPE_STR |
OK6, 9, 10 |
N/A2 |
OK5, 6, 12 |
N/A2 |
DBTYPE_IUNKNOWN |
Bayt akışı aracılığıyla ISequentialStream7 |
N/A2 |
Bayt akışı aracılığıyla ISequentialStream11 |
N/A2 |
DBTYPE_VARIANT (VT_UI1 | VT_ARRAY) |
Geçmesine6,7 |
N/A2 |
Yok |
N/A2 |
DBTYPE_VARIANT (VT_BSTR) |
Geçmesine6,10 |
N/A2 |
OK 3 |
N/A2 |
1dbtype_xml ile belirtilenden başka bir sunucu yazarsanız, ICommandWithParameters::SetParameterInfo ve erişimci türü olan dbtype_xml, deyim çalıştırıldığında hata oluşur (db_e_errorsoccurred, parametre durumudur dbstatus_e_baderişimci); Aksi durumda, verileri sunucuya gönderilen, ancak sunucu XML'den parametrenin veri türüne örtülü dönüşüm olduğunu belirten bir hata 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, ürün Reçetesi, kodlama belirtime null sonlandırma biçimidir.
5Çok baytlı karakterleri istemci kod sayfa null Sonlandırıcı ile kodlanmış biçimidir.Sağlanan Unicode dönüştürme sunucusundan neden olabilir veri bozulması, böylece bu bağlama kesinlikle önerilmez.
6by_ref kullanılabilir.
7Veri utf-16, bir ürün Reçetesi ile başlamalı.Yoksa, kodlama doğru sunucu tarafından tanınmayabilir.
8Doğrulama ortaya oluşturmak erişimci zaman veya at saat getir.Durumu DBBINDSTATUS_UNSUPPORTEDCONVERSION için küme bağlama db_e_errorsoccurred, hatadır.
9Veri Unicode sunucusuna gönderilmeden önce istemci kod sayfası kullanılarak dönüştürülür.istemci kod sayfası belge kodlamasý eşleşmezse, bu neden olabilir veri bozulması, böylece bu bağlama kesinlikle önerilmez.
10a ürün Reçetesi sunucuya gönderilen veri için eklenen her zaman.Verileri bir bom ile başladıysanız bu sonuçlar arabellek başındaki iki ürün.Sunucu kodlama utf-16 tanımak için ilk ürün Reçetesi kullanır ve sonra atar.İkinci ürün Reçetesinin bir sıfır genişlikli Bölünemez boşluk karakteri yorumlanır.
11Biçimi olan utf-16, kodlama belirtime bir ü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 gönderilir.Tek sayıda bayt arabellek uzunluğu ise, verileri doğru şekilde kesilir.Tüm değer yığına döndürülürse, bunlar için doğru değeri yeniden Hazırla'yı Bitiştirilecek.
12Arabellek uzunluğu ise ikiden az karakter--, null sonlandırma için--yeterli alan yok ise taşma hatası bildirdi.
Not
Veri null xml değerleri döndürülür.
xml standardı, utf-16 bayt sırası işareti (bom), utf-16 karakter kodunu 0xFEFF başlatmak için xml olarak kodlanmış gerektirir.wstr ve bstr bağları ile çalışırken, SQL Server Native Client gerektirmez veya bir ürün Reçetesi eklemek gibi kodlama örtülü olarak bağlama.BAYT, xml veya IUNKNOWN ile bağlarını çalışırken, diğer xml işlemcileri ve depolama sistemleri ile ilgili kolaylık sağlamak için hedeftir.Bu durum bir ürün Reçetesi ile bulunması gereken utf-16 kodlanmış xml ve xml işlemcileri (sql Server dahil olmak üzere) büyük çoğunluğu ilk birkaç bayt değerini inceleyerek kodlama örneðin bu yana uygulamanın gerçek kodlamasıyla endişeleri değil.Alınan xml verilerini SQL Server Native Client bayt, xml veya IUNKNOWN kullanarak bağları her zaman kodlanmış bir ürün Reçetesi ve bir katıştırılmış kodlama olmadan utf-16 bildirim.
ole db Çekirdek Hizmetleri tarafından sağlanan veri Dönüşümleri (IDataConvert) dbtype_xml için uygun değildir.
Sunucuya gönderilen veri doğrulama yapılması.İstemci taraflı doğrulamayı ve kodlama değişiklikleri uygulamanız tarafından ele alınması ve, değil doğrudan xml verilerini işlemek, ancak bunun yerine bir dom ya da sax okuyucu iþlemek için kullanmanız gerekir olduğunu önemle önerilir.
dbtype_null ve dbtype_empty giriş parametresi çıkış parametreleri veya sonuçlar için ancak bağlanabilir.Ne zaman bağlı giriş parametreleri için durumun olması küme DBSTATUS_S_ISNULL veya dbstatus_s_default.
dbtype_xml için dbtype_empty dönüştürülebilir 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ülemez.Bu, dbtype_wstr ile tutarlıdır.
DBTYPE_IUNKNOWN desteklenen bağlama ise (yukarıda gösterildiği gibi tablo), ancak hiçbir dönüşümleri dbtype_xml DBTYPE_IUNKNOWN arasındaki.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 için değiştirir.
SÜTUN ve procedure_parameters şema satır kümeleri
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 |
Hangi bir kataloğun adını bir xml şeması koleksiyon tanımlanır.null olmayan xml sütun veya tür xml sütun için. |
SS_XML_SCHEMACOLLECTION_SCHEMANAME |
DBTYPE_WSTR |
Adı, bir şema bir xml şeması koleksiyon tanımlanır.null olmayan xml sütun veya tür xml sütun için. |
SS_XML_SCHEMACOLLECTIONNAME |
DBTYPE_WSTR |
xml şemasının adını koleksiyon.null olmayan xml sütun veya tür xml sütun için. |
PROVIDER_TYPES şeması satır kümesi
PROVIDER_TYPES şema satır kümesi COLUMN_SIZE değeri 0 olan 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 kullanılmaya başlanmıştır.ss_xmlschema satır kümesi aşağıdaki sütunları içerir.
Sütun adı |
Tür |
Açıklama |
---|---|---|
SCHEMACOLLECTION_CATALOGNAME |
DBTYPE_WSTR |
Katalog xml koleksiyon ait. |
SCHEMACOLLECTION_SCHEMANAME |
DBTYPE_WSTR |
Bir xml şema koleksiyon ait. |
SCHEMACOLLECTIONNAME |
DBTYPE_WSTR |
xml şemasının adını koleksiyon yazılı xml sütunlar için Aksi halde null. |
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).Buna ek olarak, 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 |
Bazı kısıtlamalar |
Kısıtlanmış sütun |
---|---|---|
DBSCHEMA_XML_COLLECTIONS |
4 |
SCHEMACOLLECTION_CATALOGNAME SCHEMACOLLECTION_SCHEMANAME SCHEMACOLLECTIONNAME TARGETNAMESPACEURI |
ole db özellik eklemeler 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
Destek için xml veri türünü ole db üzerinden SQL Server Native Client yeni dbpropset_sqlserverparameter özellik küme, hangi var. aşağıdaki değerleri uygular
Ad |
Tür |
Açıklama |
---|---|---|
SSPROP_PARAM_XML_SCHEMACOLLECTION_CATALOGNAME |
DBTYPE_WSTR |
Katalogdaki (veritabanı), adını bir xml şeması koleksiyon tanımlanır.sql üç bölümlü adı tanımlayıcı bir parçası. |
SSPROP_PARAM_XML_SCHEMACOLLECTION_SCHEMANAME |
DBTYPE_WSTR |
Bir xml şeması içinde şema adı koleksiyon.sql üç bölümlü adı tanımlayıcı bir parçası. |
SSPROP_PARAM_XML_SCHEMACOLLECTIONNAME |
DBTYPE_WSTR |
xml şemasının adını koleksiyon üç - sql bölümü adı tanımlayıcı bir parçası katalog içinde. |
dbpropset_sqlservercolumn özellik kümesi
Tablolarda oluşturulmasını desteklemek için ITableDefinition arabirim, SQL Server yerel istemci dbpropset_sqlservercolumn özellik küme üç yeni sütun ekler
Ad |
Tür |
Açıklama |
---|---|---|
SSPROP_COL_XML_SCHEMACOLLECTION_CATALOGNAME |
VT_BSTR |
Yazılı xml sütunlar için bu özellik Katalog adını belirten bir dize xml şeması depolandığı dir.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 olan bir dize , bu sütun tanımlayan xml şema adını belirten. |
SSPROP_COL_XML_SCHEMACOLLECTIONNAME |
VT_BSTR |
Yazılı xml sütunlar için bu özellik olan bir dize değeri tanımlayan xml şema koleksiyonu şema adını belirten. |
ssprop_param değerleri gibi tüm bu özellikler isteğe bağlıdır ve varsayılan için boş.SSPROP_COL_XML_SCHEMACOLLECTION_CATALOGNAME ve SSPROP_COL_XML_SCHEMACOLLECTION_SCHEMANAME sadece olabilir SSPROP_COL_XML_SCHEMACOLLECTIONNAME belirtilmişse.Bu değerler varsa, xml sunucuya geçiş yaparken bunlar varlığını (geçerlilik) geçerli veritabanını ve veri şema karşı denetlenir örnek karşı denetlenir.Tüm durumlarda, geçerli olması için tüm boş ya da tüm dolu olmaları.
ole db arabirim eklemeler ve değişiklikler
SQL ServerYerel istemci yeni değerler ekler veya birçok arabirimleri ole db Çekirdek değiştirir.
ISSCommandWithParameters arabirimi
Destek için xml veri türünü ole db üzerinden SQL Server yerel istemci uygular ve buna ek olarak da dahil olmak üzere değişiklik sayısı ISSCommandWithParameters arabirim.Bu yeni arabirim çekirdek ole db arabirimden kalýtýmla alan ICommandWithParameters.Devralınan üç yöntem ek olarak ICommandWithParameters; GetParameterInfo, MapParameterNames, ve SetParameterInfo; ISSCommandWithParameters sağlayan GetParameterProperties ve SetParameterProperties server belirli veri türlerini işlemesi için kullanılan yöntemler.
Not
The ISSCommandWithParameters interface also makes use of the new SSPARAMPROPS structure.
IColumnsRowset arabirimi
SQL ServerYerel istemci aşağıdaki ekler SQL Server-belirli sütunları tarafından döndürülen satır kümesi için IColumnRowset::GetColumnsRowset yöntem.Bu sütunlar içeren bir xml şeması üç bölümlü adı koleksiyon.xml olmayan sütunlar veya untyped xml sütunlar için üç sütunu varsayılan değer NULL olur.
Sütun adı |
Tür |
Açıklama |
---|---|---|
DBCOLUMN_SS_XML_SCHEMACOLLECTION_CATALOGNAME |
DBTYPE_WSTR |
Bir xml şeması katalog koleksiyon ait Aksi halde null. |
DBCOLUMN_SS_XML_SCHEMACOLLECTION_SCHEMANAME |
DBTYPE_WSTR |
Şemayı bir xml şeması koleksiyon ait.Aksi halde null. |
DBCOLUMN_SS_XML_SCHEMACOLLECTIONNAME |
DBTYPE_WSTR |
xml şemasının adını koleksiyon yazılı xml sütun için Aksi halde null. |
IRowset arabirimi
Bir xml sütun xml örnek üzerinden alınan IRowset::GetData yöntem.dbtype_bstr, dbtype_wstr, DBTYPE_VARIANT, dbtype_xml, dbtype_str, dbtype_bytes olarak veya arabirim üzerinden DBTYPE_IUNKNOWN istemci tarafından belirtilen bağlama bağlı olarak, bir xml örnek alınabilir.Tüketici dbtype_bstr, dbtype_wstr veya DBTYPE_VARIANT belirtiyorsa, xml için kullanıcı örnek sağlayıcı dönüştürür türü istedi ve ilgili belirtilen konum içine koy bağlama.
Tüketici DBTYPE_IUNKNOWN belirtirse ve ayarlar pObject bağımsız değişkeni null veya kümeleri pObject IID_ISequentialStream, bağımsız sağlayıcı verir bir ISequentialStream tüketici sütunu dışında xml veri akışı böylece tüketiciye arabirim.ISequentialStream sonra bir Unicode karakter akışı olarak xml verileri döndürür.
xml değerini döndürmek için DBTYPE_IUNKNOWN bağlı olduğunda boyut değeri sağlayıcı raporlara sizeof (IUnknown *).Tam sütun boyutu saptanamayan bir sütun olarak DBTYPE_IUNKNOWN veya DBTYPE_IDISPATCH ve DBTYPE_IUNKNOWN/ISequentialStream bağlı olduğunda gerçekleştirilen yaklaşımı ile tutarlı olduğunu unutmayın.
IRowsetChange arabirimi
Bir tüketicinin bir xml örnek de güncelleştirebilirsiniz iki vardır bir sütun.Depolama nesnesi üzerinden birinci olan ISequentialStream sağlayıcı tarafından oluşturulur.Tüketici çağırabilir ISequentialStream::Write sağlayıcı tarafından döndürülen xml örnek doğrudan güncellemek için yöntem.
İkinci aracılığıyla yaklaşımdır IRowsetChange::SetData veya IRowsetChange::InsertRow yöntemleri.Bu yaklaşımda, tüketicinin arabelleğinde bir xml örnek, belirlenmiş bir bağlama dbtype_bstr, dbtype_wstr DBTYPE_VARIANT, dbtype_xml veya DBTYPE_IUNKNOWN türü.
dbtype_bstr, dbtype_wstr veya DBTYPE_VARIANT durumunda sağlayıcı xml depolar örnek uygun sütuna tüketici arabellekte bulunan.
De durum DBTYPE_IUNKNOWN/ISequentialStream, tüketici herhangi bir depolama nesnesi belirtin tüketici oluşturmanız gerekir bir ISequentialStream önceden nesne xml belge nesnesi ile bağlayın ve sonra nesneyi sağlayıcı üzerinden geçişi için IRowsetChange:: SetData'yı yöntem.Tüketici de bir depolama nesnesi oluşturabilirsiniz küme IID_ISequentialStream, pObject bağımsız değişkenini oluşturmak bir ISequentialStream object ve ardından geçmesi ISequentialStream itiraz Irowkümedeğişiklik::kümeveri yöntem.Her iki durumda da, sağlayıcı xml nesnesi üzerinden almak ISequentialStream uygun yerleştirin ve nesne sütun.
IRowsetUpdate arabirimi
IRowsetUpdate arabirim Gecikmeli güncelleştirmelerin 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ılır değil IRowsetUpdate:Update yöntem.
IRowsetFind arabirimi
The IRowsetFind::FindNextRow method does not work with the xml data type.Zaman IRowsetFind::FindNextRow olarak bilinir ve hAccessor bağımsız değişken bir sütun dbtype_xml belirtir, DB_E_BADBINDINFO döndürülür.Bu, Aranmakta sütun türüne bakılmaksızın gerçekleşir.İçin herhangi bir bağlama türü, 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 Server yerel istemci odbc sürücüsü, değişiklikleri yapıldı için çeşitli işlevleri desteklemek üzere xml veri türü.
SQLColAttribute
The SQLColAttribute function has three new field identifiers, including SQL_CA_SS_XML_SCHEMACOLLECTION_CATALOG_NAME, SQL_CA_SS_XML_SCHEMACOLLECTION_SCHEMA_NAME, and SQL_CA_SS _XML_SCHEMACOLLECTION_NAME.
The SQL Server Native Client ODBC driver reports SQL_SS_LENGTH_UNLIMITED for the SQL_DESC_DISPLAY_SIZE and SQL_DESC_LENGTH columns.
SQLColumns
The SQLColumns function has three new columns including SS_XML_SCHEMACOLLECTION_CATALOG_NAME, SS_XML_SCHEMACOLLECTION_SCHEMA_NAME, and SS_XML_SCHEMACOLLECTION_NAME.Bir xml türü sütun veya parametre için data_type sql_ss_xml olduğu ve varolan type_name sütununa xml türü adını belirtmek için kullanılır.
The SQL Server Native Client ODBC driver reports SQL_SS_LENGTH_UNLIMITED for the COLUMN_SIZE and CHAR_OCTET_LENGTH values.
SQLDescribeCol
The SQL Server Native Client ODBC driver reports SQL_SS_LENGTH_UNLIMITED when the column size cannot be determined in the SQLDescribeCol function.
SQLGetTypeInfo
The SQL Server Native Client ODBC driver reports SQL_SS_LENGTH_UNLIMITED as the maximum COLUMN_SIZE for the xml data type in the SQLGetTypeInfo function.
SQLProcedureColumns
The SQLProcedureColumns function has the same column additions as the SQLColumns function.
The SQL Server Native Client ODBC driver reports SQL_SS_LENGTH_UNLIMITED as the maximum COLUMN_SIZE for the xml data type.
Desteklenen dönüştürmeleri
sql c 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: 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 verilirTek sayıda bayt arabellek uzunluğu ise veri işe düzgün kesilmiş.Tüm değer yığına döndürülürse, bunlar doğru değer re-constitute için Bitiştirilecek
SQL_C_CHAR: istemci kod sayfa null sonlandırma ile kodlanmış çok baytlı karakterleri biçimidir.Sunucudan dönüştürme utf-16 sağlanan neden olabilir veri bozulması, böylece bu bağlama kesinlikle önerilmez.
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 be added to sunucuya gönderilen veri.Verileri bir bom ile başladıysanız bu sonuçlar arabellek başındaki iki ürün.Sunucu ilk ürün Reçetesi kodlama utf-16 tanımak ve onu atmak için kullanır.İkinci ürün Reçetesinin bir sıfır genişlikli Bölünemez boşluk karakteri yorumlanır.
SQL_C_BINARY: Verileri "gibi." sunucusuna geçirilir ve dönüştürme gerçekleştirilir utf-16 veri bir bom ile başlamalıdır; yoksa, kodlama doğru sunucu tarafından tanınmayabilir.
SQL_C_CHAR: Üzerinde dönüştürülen verileri utf-16 istemci ve sadece (bir ürün reçetesinin eklenmesi de dahil olmak üzere) sql_c_wchar sunucusuna gönderilir.Neden olabilir istemci kod sayfa xml kodlanmış, veri bozulması.
xml standardı, utf-16 bayt sırası işareti (bom), utf-16 karakter kodunu 0xFEFF başlatmak için xml olarak kodlanmış gerektirir.Bir SQL_C_BINARY bağlama ile çalışırken, SQL Server Native Client gerektirmez veya bir ürün Reçetesi eklemek gibi kodlama örtülü olarak bağlama.Amacı diğer xml işlemcileri ve depolama sistemleri ile ilgili kolaylık sağlamaktır.Bu durum bir ürün Reçetesi ile bulunması gereken utf-16 kodlanmış xml ve uygulama gerçek kodlama ile çünkü endişeleri değil xml işlemcilerin çoğunluğu (dahil olmak üzere SQL Server) ilk birkaç bayt değeri. inceleyerek kodlama olmadanAlınan xml verilerini SQL Server Native Client kullanarak SQL_C_BINARY bağları kodlanmış, utf-16 olan bir ürün Reçetesi ve bir katıştırılmış olmayan her zaman kodlama bildirim.
Ayrıca bkz.