Nowości w SQLXML 4.0 z dodatkiem SP1
Microsoft SQLXML 4.0 z dodatkiem SP1 zawiera różne aktualizacje i rozszerzenia.Ten temat zawiera podsumowanie aktualizacji i łącza do bardziej szczegółowych informacji, gdy są dostępne.SQLXML 4.0 z dodatkiem SP1 zawiera dodatkowe ulepszenia do obsługi nowych typów danych w SQL Server 2008.Ten temat zawiera następujące zagadnienia:
Instalowanie SQLXML 4.0 z dodatkiem SP1
Problemy z instalacją obok siebie
SQLXML 4.0 i MSXML
Redystrybuowanie SQLXML 4.0
Wsparcie dla SQL Server Native Client
Obsługa typów danych wprowadzonych w SQL Server 2005
Zmiany obciążenia luzem XML SQLXML 4.0
Zmiany klucza rejestru dla SQLXML 4.0
Zagadnienia migracji
Instalowanie SQLXML 4.0 z dodatkiem SP1
Przed SQL Server 2008, SQLXML 4.0 został zwolniony z programem 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 dostępna w programie SQL Server.Aby zainstalować SQLXML 4.0 z dodatkiem SP1, gdy są dostępne, pobierz go z Zainstalować lokalizację SQLXML 4.0 z dodatkiem SP1.
Pliki SQLXML 4.0 z dodatkiem SP1 są instalowane w następującej lokalizacji:
%PROGRAMFILES%\SQLXML 4.0\
Ostrzeżenie
Wszystkie ustawienia rejestru właściwe dla SQLXML 4.0 są wprowadzane jako część procesu instalacji.
Aby umożliwić aplikacji SQLXML 32-bitowych w systemach Windows dla systemu 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óry można znaleźć w Centrum pobierania.
Odinstalowywanie SQLXML 4.0 z dodatkiem SP1
Współużytkowane klucze istnieją między SQLXML 3.0 z dodatkiem SP3, SQLXML 4.0 i SQLXML 4.0 z dodatkiem SP1 rejestru.Nowsze wersje SQLXML odinstalowanie są na tym samym komputerze, który zawiera SQLXML 3.0 z dodatkiem SP3, należy ponownie zainstalować SQLXML 3.0 z dodatkiem SP3.
Problemy z instalacją obok siebie
Proces instalacji SQLXML 4.0 nie powoduje usunięcia plików, które zostały zainstalowane przez wcześniejsze wersje SQLXML.Dlatego mogą mieć bibliotek DLL dla kilku różnych wersja charakterystyczne instalacji SQLXML na komputerze.Można uruchomić instalacji side-by-side.SQLXML 4.0 zawiera identyfikatory ProgID wersja niezależne i zależne od wersja.Wszystkie aplikacje produkcji należy używać ProgID zależny 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 instalacji.
Redystrybuowanie SQLXML 4.0 z dodatkiem SP1
SQLXML 4.0 z dodatkiem SP1 przy użyciu pakiet redystrybucyjnego Instalatora można rozpowszechniać.Jednym ze sposobów instalowania wielu pakietów w co wydaje się użytkownika do jednej instalacji jest użycie moduł łańcucha i technologii program inicjujący.Aby uzyskać więcej informacji, zobacz tworzenia pakietu program inicjujący niestandardowego programu Visual Studio 2005 i Dodawania niestandardowych wstępnych.
Jeśli aplikacja przeznaczony dla platform innych niż ten, który został opracowany na, można pobrać wersje sqlncli.msi x 86 i x 64, Itanium, z witryny Microsoft — Centrum pobierania.
Istnieją również oddzielne rozpowszechniania programów instalacyjnych dla programu MSXML 6.0 (msxml6.msi).Te można znaleźć na SQL Server instalacyjnego dysku CD w następującej lokalizacji:
%CD%\Setup\
Te pliki instalacji można zainstalować program MSXML 6.0 bezpośrednio z dysku CD.One również można swobodnie redystrybuowania programu MSXML 6.0, wraz z SQLXML 4.0 z dodatkiem SP1 w niestandardowych aplikacji.
Należy także redystrybuować SQL Server Native Client, jeśli używasz jako dostawca danych z aplikacji.Aby uzyskać więcej informacji, zobacz Instalowanie programu SQL Server Native Client.
Wsparcie dla programu SQL Server Native Client
SQLXML 4.0 obsługuje zarówno SQLOLEDB i SQL Server Native Client dostawców.Zaleca się używania tej samej wersja SQL Server dostawca Native Client i SQL Server ponieważ SQL Server Native Client jest opracowany do obsługi nowych typów danych, dostarczane na serwerze, takie jak Date, Time, DateTime2, i dateTimeOffset typy danych w SQL Server 2008 i obsługiwane przez SQL Server 2008 macierzystego klienta.
SQL ServerKlientami jest technologii dostępu do danych, którą wprowadzono w SQL Server 2005.Łączy dostawcy SQLOLEDB i sterownik SQLODBC do jednego macierzystym dołączanej biblioteki (DLL), zapewniając także nowe funkcje odrębne i niezależne od Microsoft Data Access Components (MDAC).
SQL ServerKlient macierzysty może być używany 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 systemu Windows.Na przykład SQL Server Native klient jest wymagany dla funkcji SQLXML po stronie klient, takich jak XML dla, aby użyć xml typu danych.Aby uzyskać więcej informacji, zobacz Formatowanie (SQLXML 4.0) XML po stronie klienta, Przy użyciu ADO SQLXML wykonanie kwerendy 4.0, i SQL Server 2008 R2 Native Client Programming.
Ostrzeżenie
SQLXML 4.0 nie jest całkowicie zgodny z SQLXML 3.0.Ze względu na kilka poprawek i innych zmian funkcjonalnych szczególnie usuwania obsługi SQLXML ISAPI nie można używać katalogów wirtualnych programu IIS SQLXML 4.0.Chociaż większość aplikacji będą uruchamiane z niewielkie modyfikacje, należy je przetestować przed wprowadzeniem ich do produkcji SQLXML 4.0.
Obsługa typów danych wprowadzonych w programie SQL Server 2005 i SQL Server 2008
SQL Server 2005wprowadzone xml Typ danych i obsługuje SQLXML 4.0 xml typu danych.Aby uzyskać więcej informacji, zobacz xml nie obsługuje typu danych w SQLXML 4.0.
Przykłady użycia 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 2008wprowadzone Date, Time, DateTime2, i DateTimeOffset typów danych.SQLXML 4.0 z dodatkiem SP1 umożliwi cztery nowe typy danych jako wbudowane typy wartość skalarna z SQL Server 2008 Macierzystego klienta dostawcy OLE DB (SQLNCLI10), której statki w SQL Server 2008.
Zmiany obciążenia luzem XML SQLXML 4.0 z dodatkiem SP1
SQLXML 4.0 SchemaGen pole przepełnienia jest tworzona za pomocą xml typu danych.Aby uzyskać więcej informacji, zobacz Modelu obiektów programu SQL Server XML luzem obciążenia.
Jeśli wcześniej utworzono Microsoft aplikacji Visual Basic i chcesz używać SQLXML 4.0, należy ponownie skompilować aplikację z odniesieniem do Xblkld4.dll.
Dla aplikacji Visual Basic Scripting Edition należy zarejestrować biblioteki DLL, którego chcesz użyć.W poniższym przykładzie Jeśli określisz ProgID niezależnych od wersja aplikacji zależy ostatni plik DLL zarejestrowanych:
set objBulkLoad = CreateObject("SQLXMLBulkLoad.SQLXMLBulkLoad")
Ostrzeżenie
Identyfikator PROGID zależny wersja jest SQLXMLBulkLoad.SQLXMLBulkLoad.4.0.
Zmiany klucza rejestru dla SQLXML 4.0
SQLXML 4.0 klucze rejestru zostały zmienione z wcześniejszych uwolnień do następującego:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\SQLXML4\TemplateCacheSize
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\SQLXML4\SchemaCacheSize
Należy zmienić ustawienia, jeśli ma obowiązywać 4.0 SQLXML tych kluczy.
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 wysokiej -poziom błąd SQLXML (jak przypadek starszych wersjach SQLXML).Jeśli nie chcesz tego zachowania, wartość tego klucz rejestru typu DWORD musi być zestaw 0 (wartość domyślna to 1).
HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer\Client\SQLXML4\FORXML_GenerateGUIDBraces
Domyślnie, zwracają SQLXML SQL Server wartości identyfikatora GUID bez nawiasów klamrowych otaczający.Jeśli ma wartość identyfikatora GUID zwracane z nawiasy klamrowe (na przykład {niektóre GUID}), wartość tego klucz rejestru musi być zestaw 1 (wartość domyślna wynosi 0).
HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer\Client\SQLXML4\SQL2000CompatMode
Domyślnie gdy analizator składni XML są ładowane dane, spacji są znormalizowane zgodnie z regułami XML 1.0.To wyniki utratę niektórych znaków odstępu w danych.W ten sposób tekstowa reprezentacja danych może nie być taka sama po analizowania, chociaż semantycznie danych jest taka sama.
Klucz ten jest wprowadzany, dzięki czemu można przechowywać znaki odstępu w danych.Dodanie tego klucza rejestru i zestaw jego wartość na 0, znaki odstępu (LF, CR i kartę) w kodzie XML, zwracane są zakodowane przypadek wartości atrybut.przypadek wystąpienia wartości elementów tylko CR 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
Następujące problemy wpływające migracji starszych aplikacji SQLXML SQLXML 4.0.
Obiekty ADO i SQLXML 4.0 kwerendy
We wcześniejszych wersjach SQLXML dostarczono obsługę korzystanie z katalogów wirtualnych programu IIS i filtr SQLXML ISAPI wykonanie kwerendy oparte na adresach URL.Aplikacje używające funkcji SQLXML 4.0 obsługa ta 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 wprowadzone w danych Microsoft Access Components (MDAC) 2.6 lub nowszej.
Aby uzyskać więcej informacji, zobacz Przy użyciu ADO SQLXML wykonanie kwerendy 4.0.
Supportability ISAPI SQLXML 3.0 i typy danych wprowadzonych w programie SQL Server 2005
Ponieważ usunięto obsługę ISAPI 4.0 SQLXML, jeśli rozwiązanie wymaga, wpisując dane rozszerzone funkcje wprowadzone w SQL Server 2005 takich jak Typ danych xml lub typy danych zdefiniowane przez użytkownika (UDTs) i dostępu oparte na sieci Web będzie trzeba użyć innego rozwiązania takie jak SQLXML zarządzane klas lub inny typ obsługi HTTP, takich jak macierzystego XML Web Services for SQL Server 2005.
Ewentualnie, jeśli te rozszerzenia typu nie jest wymagane, można kontynuować połączyć za pomocą SQLXML 3.0 SQL Server 2005 i SQL Server 2008 instalacji.Obsługa SQLXML 3.0 ISAPI będzie działać przeciwko tych nowszych wersjach, ale nie obsługuje lub rozpoznaje xml Typ danych lub UDT wpisz wsparcia wprowadzone w SQL Server 2005.
Zmiany zabezpieczeń obciążenia XML luzem, pliki tymczasowe
SQLXML 4.0 i SQL Server 2005 lub SQL Server 2008, XML ładowanie zbiorcze pliku uprawnienia są przyznawane użytkownikowi wykonywanie operacji ładowania luzem.Uprawnienia odczytu i zapisu są dziedziczone z systemu plików.W poprzednich wersjach SQLXML i SQL Server XML luzem obciążeniu SQLXML utworzyć pliki tymczasowe, które nie zostały zabezpieczone i mogą być odczytane przez nikogo.
Zagadnienia migracji XML dla klienta.
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 zostałaby zwrócona Jeśli kwerendy XML dla zostało wykonane zgodnie z SQL Server 2000.W przypadkach gdy występuje po stronie klient formatowania wyniki kwerendy XML dla ma wyjścia zróżnicowane w zależności od tego, która wersja uruchamiana kwerenda.
Jeśli kwerenda XML dla klient wykonywany używa SQLXML 3.0 nad xml kolumna Typ danych, dane w wyniki będzie powracać ciąg całkowicie entitized.W wersji 4.0 SQLXML Jeśli SQL Server Native Client (SQLNCLI10) jest określony jako dostawca, dane będą zwracane jako XML.