Nowości w SQLXML 4.0 z dodatkiem SP1
Microsoft SQLXML 4.0 z dodatkiem SP1 zawiera różne aktualizacje i rozszerzenia.W tym temacie zamieszczono podsumowanie aktualizacji i zawiera łącza do bardziej szczegółowych informacji, jeśli są one dostępne.SQLXML 4.0 z dodatkiem SP1 zawiera dodatkowe ulepszenia obsługuje nowe typy danych w SQL Server 2008. W tym temacie omówiono następujące tematy:
Instalowanie SQLXML 4.0 z dodatkiem SP1
Problemy z instalacji po stronie siebie
SQLXML 4.0 i programu MSXML
Redystrybuowanie SQLXML 4.0
Obsługa dla SQL Server Macierzysta klient
Obsługa typów danych, wprowadzona w SQL Server 2005
XML ładowanie zbiorcze zmiany w SQLXML 4.0
Zmiany klucz rejestru dla SQLXML 4.0
Zagadnienia migracji
Instalowanie SQLXML 4.0 z dodatkiem SP1
Przed SQL Server 2008SQLXML 4.0 została opublikowana z programu SQL Server i był częścią domyślnej instalacji wszystkich wersji programu SQL Server, z wyjątkiem dla programu SQL Server Express. Począwszy od SQL Server 2008, najnowszą wersja SQLXML (SQLXML 4.0 z dodatkiem SP1) nie jest już znajduje się w programie SQL Server. Aby zainstalować SQLXML 4.0 z dodatkiem SP1, gdy jest ona dostępna, pobrać ją z Zainstaluj lokalizacja SQLXML.
Pliki SQLXML 4.0 z dodatkiem SP1 są instalowane w następującej lokalizacji:
%PROGRAMFILES%\SQLXML 4.0\
Uwaga
Wszystkie ustawienia rejestru właściwe dla SQLXML 4.0 są wykonywane w ramach procesu instalacji.
Aby umożliwić SQLXML 32-bitowych aplikacji działających w systemie Windows w systemie Windows (WOW64) w 64-bitowych systemach operacyjnych Windows, należy uruchomić pakiet SQLXML 4.0 z dodatkiem SP1 64-bitowej, o nazwie sqlxml4.msi, które można znaleźć w Centrum pobierania.
Odinstalowywanie SQLXML 4.0 z dodatkiem SP1
Udostępnione rejestru klucze istniejące między SQLXML 3.0 SP3, SQLXML 4.0 i SQLXML 4.0 z dodatkiem SP1.W przypadku nowszych wersjach SQLXML odinstalowania są na tym samym komputerze, który zawiera SQLXML 3.0 z dodatkiem SP3, może być konieczne ponowne zainstalowanie SQLXML 3.0 z dodatkiem SP3.
Problemy z instalacji po stronie siebie
Proces instalacji SQLXML 4.0 nie powoduje usunięcia plików, które zostały zainstalowane przez wcześniejsze wersje SQLXML.Konieczne może więc biblioteki DLL kilka różnych wersja charakterystyczne instalacji SQLXML na komputerze.Można uruchomić instalacji po stronie za strony.SQLXML 4.0 obejmuje PROGIDs niezależnych od wersja i zależne od wersja.Wszystkie aplikacje produkcji należy używać PROGIDs zależne od wersja.
SQLXML 4.0 z dodatkiem SP1 i MSXML
SQLXML 4.0 nie można zainstalować programu MSXML.SQLXML 4.0 używa programu MSXML 6.0 jest zainstalowany jako część SQL Server 2005 lub SQL Server 2008 Instalacja.
Redystrybuowanie SQLXML 4.0 z dodatkiem SP1
Można rozpowszechniać SQLXML 4.0 z dodatkiem SP1 przy użyciu pakiet redystrybucyjnego Instalatora.Jednym ze sposobów na zainstalowanie wielu pakietów, w jaki wydaje, że użytkownik ma być jednej instalacji jest użycie chainer i technologii inicjującego.Aby uzyskać więcej informacji zobacz temat Authoring inicjującego niestandardowy pakiet Visual Studio 2005 i dodawanie wymagania wstępne niestandardowe.
Jeśli aplikacja jest przeznaczony dla platformy innego niż ten został opracowany na, w Centrum pobierania firmy Microsoft można pobrać wersji sqlncli.msi Itanium, x 64 oraz x 86.
Istnieją również redystrybucji odrębne programy instalacyjne dla programu MSXML 6.0 (msxml6.msi).Te można znaleźć na stronie SQL Server instalacyjny dysk CD w następującej lokalizacji:
%CD%\Setup\
Te pliki instalacyjne, można użyć do zainstalowania programu MSXML 6.0 bezpośrednio z dysku CD.Mogą one również używane do swobodnie redystrybuowania programu MSXML 6.0 wraz z SQLXML 4.0 z dodatkiem SP1 z niestandardowych aplikacji.
Należy także ponownie rozdzielić SQL Server Macierzysty klient, jeśli jest ona używana jako dostawca danych z aplikacji. Aby uzyskać więcej informacji zobaczInstalowanie klient macierzyste SQL Server.
Obsługa klient macierzyste SQL Server
SQLXML w wersji 4.0 obsługuje zarówno SQLOLEDB i SQL Server Macierzystego dostawcy klient. Zalecane jest korzystanie z tej samej wersja programu SQL Server Macierzystego dostawca klienta i SQL Server ponieważ SQL Server Klient macierzystym jest zaprojektowane w celu obsługuje nowe typy danych, który jest dostarczany z serwera, takie jak Date, Time, DateTime2, a dateTimeOffset typy danych w SQL Server 2008 i obsługiwanych przez SQL Server 2008 Macierzysta klienta.
SQL Server Klient macierzystym jest technologii dostępu do danych, który został wprowadzony w SQL Server 2005. Go łączy dostawca SQLOLEDB i sterownik SQLODBC w jednej bibliotece macierzystym dołączanej dynamicznie (DLL), a także zapewnia nowych funkcji, które są rozdzielne i różne od Microsoft Data Access Components (MDAC).
SQL Server Macierzysta klient może służyć do tworzenia nowych aplikacji lub ulepszać istniejące aplikacje, które muszą korzystać z funkcji wprowadzonych w SQL Server nie są obsługiwane przez SQLOLEDB i SQLODBC w składnikach MDAC i Microsoft System Windows. Na przykład SQL Server Macierzysta klient jest wymagany dla funkcji SQLXML po stronie klient, takich jak XML FOR, aby użyć xml Typ danych. Aby uzyskać więcej informacji zobacz Formatowanie (SQLXML 4.0) XML po stronie klient, Przy użyciu obiektu ADO do wykonywania SQLXML bada 4.0, a Program SQL Server 2008 Native klient Programming.
Uwaga
SQLXML 4.0 nie jest całkowicie zgodna z SQLXML w wersji 3.0.Ze względu na niektóre rozwiązania błędów i inne zmiany funkcjonalne, szczególnie usunięcie obsługi SQLXML ISAPI, nie można używać katalogów wirtualnych programu IIS 4.0 SQLXML.Chociaż większość aplikacji będą uruchamiane z niewielkie modyfikacje, należy je przetestować przed wprowadzeniem ich do produkcji przy użyciu SQLXML w wersji 4.0.
Obsługa typów danych, wprowadzona w programie SQL Server 2005 i SQL Server 2008
SQL Server 2005 wprowadzone xml Typ danych i obsługuje SQLXML 4.0 xml Typ danych. Aby uzyskać więcej informacji zobacz Obsługa typu danych w wersji 4.0 SQLXML danych XML.
Aby zapoznać się z przykładami używania xml Typ danych w SQLXML podczas mapowania XML, widokach, zbiorczego ładowania XML lub wykonywanie XML updategrams można znaleźć przykłady podane w następujących tematach.
SQL Server 2008 wprowadzone Date, Time, DateTime2, a DateTimeOffset typy danych. SQLXML 4.0 z dodatkiem SP1 umożliwi cztery nowe typy danych jako wbudowane typy wartość skalarna, w przypadku użycia z SQL Server 2008 Macierzysta klient dostawca OLE DB (SQLNCLI10), które dostarczane jest w SQL Server 2008.
XML ładowanie zbiorcze zmiany w SQLXML 4.0 z dodatkiem SP1
Dla SQLXML 4.0 SchemaGen Przepełnienie pole jest tworzona za pomocą xml Typ danych. Aby uzyskać więcej informacji zobacz Program SQL Server XML ładowanie zbiorcze obiekt modelu.
Jeśli wcześniej utworzono Microsoft Aplikacje Visual Basic i chcesz używać SQLXML 4.0, należy ponownie skompilować aplikację z Xblkld4.dll.
W przypadku aplikacji Visual Basic wykonywanie skryptów Edition należy zarejestrować biblioteki DLL, który ma być używany.W poniższym przykładzie Jeśli określisz PROGIDs niezależnych od wersja aplikacji zależy ostatnio zarejestrowane biblioteki DLL:
set objBulkLoad = CreateObject("SQLXMLBulkLoad.SQLXMLBulkLoad")
Uwaga
PROGID zależny od wersja jest SQLXMLBulkLoad.SQLXMLBulkLoad.4.0.
Zmiany klucz rejestru dla SQLXML 4.0
W wersji 4.0 SQLXML klucze rejestru zostały zmienione z wcześniejszych wersji do następującego:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\klient\SQLXML4\TemplateCacheSize
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\klient\SQLXML4\SchemaCacheSize
Jeśli chcesz, aby te klawisze, aby obowiązywać dla SQLXML w wersji 4.0, należy zmienić ustawienia.
Ponadto SQLXML 4.0 wprowadzono następujące klucze rejestru:
HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer\Client\SQLXML4\ReportErrorsWithSQLInfo
Domyślnie SQLXML 4.0 zwraca błąd macierzysty informacji dostarczonych przez OLE DB i SQL Server zamiast wysokiego poziom błąd SQLXML (jak przypadek we wcześniejszych wersjach SQLXML). Jeśli nie chcesz, aby ten problem, wartość tego klucz rejestru typu DWORD musi być zestaw na wartość 0 (domyślnie jest to 1).
HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer\klient\SQLXML4\FORXML_GenerateGUIDBraces
Domyślnie SQLXML zwracają wartości identyfikatora GUID serwera SQL bez nawiasów klamrowych otaczający.Jeśli wartość identyfikatora GUID zwracane z nawiasami klamrowymi (na przykład {Niektóre GUID}), wartość tego klucz rejestru musi być zestaw 1 (wartość domyślna jest równa 0).
HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer\klient\SQLXML4\SQL2000CompatMode
Domyślnie gdy analizator składni XML powoduje załadowanie danych, spacji są znormalizowane zgodnie z regułami XML 1.0.To powoduje utratę niektórych znaków odstępu w danych.W ten sposób tekstowa reprezentacja danych może nie być taki sam, po analizy, chociaż semantycznie danych jest taka sama.
Klucz ten jest wprowadzany, dzięki czemu można przechowywać znaki odstępu w danych.Jeśli dodać ten klucz rejestru i ustawić jej wartość na 0, znaki światła (LF powrotu KARETKI i karcie) w kodzie XML zwracane są zakodowane przypadek wystąpienia wartości atrybut.przypadek wystąpienia wartości elementów tylko KREDYT zwracana jest zakodowany.
Na przykład:
CREATE TABLE T( Col1 int, Col2 nvarchar(100)) GO -- Insert data with tab, line feed and carriage return). INSERT INTO T VALUES (1, 'This is a tab . This is a line feed and CR more text') GO -- Test this query (without the registry key). SELECT * FROM T FOR XML AUTO -- This is the result (no encoding of special characters). <?xml version="1.0" encoding="utf-8" ?> <r> <T Col1="1" Col2="This is a tab . This is a line feed and CR more text"/> </r> -- Now add registry key with value 0 and execute the query again. -- Note the encoding for carriage return, line-feed and tab in the attribute value. <?xml version="1.0" encoding="utf-8" ?> <r> <T Col1="1" Col2="This is a tab 	. This is a line feed and CR 
 more text"/> </r> -- Update the query and specify ELEMENTS directive SELECT * FROM T FOR XML AUTO, ELEMENTS -- Only the carriage return is returned encoded. <?xml version="1.0" encoding="utf-8" ?> <r> <T> <Col1>1</Col1> <Col2>This is a tab . This is a line feed and CR 
 more text</Col2> </T> </r>
Zagadnienia migracji
Poniżej opisano problemy, które mogą mieć wpływ na migracji starszych aplikacji SQLXML SQLXML 4.0.
Obiekty ADO i SQLXML 4.0 kwerendy
We wcześniejszych wersjach SQLXML obsługę wykonanie kwerendy oparte na adres URL, korzystanie z katalogów wirtualnych programu IIS i filtr SQLXML ISAPI zostały dostarczone.W przypadku aplikacji używających SQLXML 4.0 ta obsługa nie jest już dostępny.
Zamiast tego kwerendy SQLXML, szablonów i updategrams mogą być wykonywane przy użyciu rozszerzeń SQLXML do ActiveX Data Objects (ADO) po raz pierwszy wprowadzony w Microsoft Data Access Components (MDAC) 2.6 i nowszych.
Aby uzyskać więcej informacji zobaczPrzy użyciu obiektu ADO do wykonywania SQLXML bada 4.0.
Obsługą dotyczące warstw ISAPI SQLXML 3.0 i typy danych, wprowadzona w programie SQL Server 2005
Ponieważ obsługa ISAPI została usunięta z SQLXML 4.0, jeśli rozwiązanie wymaga danych rozszerzonych, wpisując funkcje wprowadzone w SQL Server 2005 przykład Typ danych XML or typy danych zdefiniowane przez użytkownika (UDTs) i dostępu opartych na sieci Web, konieczne będzie użycie innego rozwiązania, takie jak SQLXML zarządzane klas lub inny rodzaj obsługi HTTP, takich jak Macierzysty usług XML sieci Web dla programu SQL Server 2005.
Ewentualnie Jeśli te rozszerzenia typu nie jest wymagane, można nadal korzystać SQLXML 3.0 do łączenia się z SQL Server 2005 i SQL Server 2008 urządzenia. Obsługa SQLXML 3.0 ISAPI będzie działa względem tych nowszej wersji, ale nie obsługuje lub rozpoznaje xml Typ danych lub UDT wpisz wprowadzone w pomocy technicznej SQL Server 2005.
Zmiany zabezpieczeń ładowanie zbiorcze XML dla tymczasowych plików
Dla SQLXML 4.0 i SQL Server 2005 lub SQL Server 2008Uprawnienia do plików XML ładowanie zbiorcze są przyznawane użytkownikowi wykonywanie operacji zbiorczej obciążenia. Uprawnienia odczytu i zapisu są dziedziczone z systemu plików.W poprzednich wersjach SQLXML i programu SQL Server obciążenia zbiorcze XML pod SQLXML utworzy pliki tymczasowe, które nie zostały zabezpieczone i mogą być odczytane przez każdy komputer.
Zagadnienia migracji XML FOR po stronie klient
Ze względu na zmiany w aparacie wykonanie SQL Server 2005 i SQL Server 2008 mogą zwracać różne wartości metadane dla tabela bazowa nie będą zwracane, jeśli kwerendy FOR XML zostało wykonane w obszarze SQL Server 2000. W przypadkach, w którym występuje po stronie klient formatowania wyniki kwerendy FOR XML ma różne dane wyjściowe w zależności od wersja kwerendy jest wykonywane w stosunku.
Jeśli kwerendy XML dla klient wykonywany używa SQLXML 3.0 za pośrednictwem xml kolumna o typie danych, dane w wynikach będzie powrócić całkowicie entitized ciąg znaków. W SQLXML 4.0 Jeśli SQL Server Klient macierzystym (SQLNCLI10) jest określony jako dostawca, dane zostaną zwrócone w formacie XML.