Uaktualnianie aplikacji SQL Server Native klient ze składników MDAC

Istnieje wiele różnic między SQL Server Macierzysta klient i składników Microsoft Data Access Components (MDAC; począwszy od systemu Windows Vista składników dostępu do danych są teraz nazywane Windows Data Access Components lub DAC systemu Windows). Chociaż zarówno zapewniają dostęp macierzystym danych do SQL Server w przypadku baz danych SQL Server Macierzysta klient został zaprojektowany specjalnie do udostępnienia nowe funkcje SQL Server 2005, podczas gdy przy jednoczesnym zachowaniu zgodność ze starszymi wersjami.

Informacje zawarte w tym temacie ułatwia aktualizowanie składników MDAC (lub Windows DAC) aplikacji do bieżącej wersja programu SQL Server Macierzysta klient, który został uwzględniony w SQL Server 2005. Pomaga w tej aplikacji jest bieżącej wersja programu SQL Server Macierzysta klient, które zostały wydane SQL Server 2008, zobacz Uaktualnianie aplikacji do programu SQL Server 2008 Native klient programu SQL Server 2005 Native klient.

Co więcej, mimo że MDAC zawiera składniki za pomocą OLE DB, ODBC i ActiveX Data Objects (ADO), SQL Server Klient macierzystym tylko implementuje OLE DB i ODBC (chociaż ADO można uzyskać dostępu do funkcji SQL Server Klient macierzystym).

SQL Server Macierzysta klient i składników MDAC różnią się w następujących obszarach:

  • Użytkownicy, którzy korzystają z dostępu do obiektów ADO SQL Server Macierzystego dostawca klient może się okazać mniej funkcji filtrowania, niż po nich uzyskać dostępu do dostawca SQL OLE DB.

  • Jeśli korzysta z aplikacji obiektów ADO SQL Server Macierzysty klient i próby aktualizacji kolumna obliczana, zostanie zgłoszony błąd. W składnikach MDAC aktualizację zostało zaakceptowane, ale ignorowane.

  • SQL Server Klient macierzystym jest plik jeden samodzielny dołączanej biblioteki (DLL).Interfejsy publiczne narażonych przebywały do minimum, zarówno ułatwia dystrybucji, a także aby ograniczenie zakresu ekspozycji zabezpieczeń.

  • Obsługiwane są tylko interfejsy OLE DB i ODBC.

  • The SQL Server Native klient OLE DB dostawca and ODBC driver names are different from those used with MDAC.

  • Funkcja dostępna dla użytkownika, dostarczone przez składniki MDAC jest dostępna, podczas korzystania z SQL Server Macierzysta klient. Zawiera, ale nie jest ograniczony do następujących: połączenia z puli, obsługa ADO i klient kursor pomocy technicznej. Kiedy te funkcje są używane, SQL Server Macierzysta klient dostarcza tylko łączność z bazami danych. Składniki MDAC zawiera funkcje, takie jak liczniki wydajności śledzenia i zarządzania formantów.

  • Aplikacje mogą używać podstawowych usług baz danych OLE z SQL Server Klient macierzystego, ale jeśli przy użyciu aparatu kursor OLE DB, ich opcji należy używać danych typu zgodności w celu uniknięcia potencjalnych problemów, które mogą wystąpić, ponieważ aparat kursora nie zna nowej SQL Server 2005 typy danych.

  • SQL Server Dostęp do poprzednich obsługuje macierzysty klient SQL Server począwszy od bazy danych SQL Server w wersjach 7.0 i nowszych.

  • SQL Server Macierzysta klient nie zawiera Integracja XML.SQL Server klient macierzysty obsługuje kwerendy SELECT … FOR XML, ale nie obsługuje inne funkcje XML.Jednak SQL Server Obsługuje klientów macierzystych xml Typ danych wprowadzonych w SQL Server 2005.

  • SQL Server klient macierzysty obsługuje konfigurowania bibliotek sieciowych klient przy użyciu tylko atrybuty ciąg połączenia.Aby uzyskać bardziej kompletny konfiguracja biblioteki sieciowej, należy użyć SQL Server Menedżer konfiguracja.

  • SQL Server Klient macierzysty nie jest zgodny z odbcbcp.dll.Aplikacje korzystające z obu ODBC i BCP Interfejsy API musi się ponownie połączyć sqlncli10.lib do używania SQL Server Macierzysta klient.

  • SQL Server Macierzysta klient nie jest obsługiwana przez dostawca Microsoft OLE DB dla ODBC (MSDASQL).Jeśli używasz sterownika SQLODBC składników MDAC z MSDASQL lub sterownika SQLODBC składników MDAC z obiektów ADO, należy użyć OLE DB w SQL Server Macierzysta klient

  • Ciągi połączeń MDAC umożliwiają (logicznytrue) dla Trusted_Connection słowo kluczowe. A SQL Server Należy użyć trybu macierzystego ciąg połączenia klient yes lub no.

  • Niewielkie zmiany wystąpiły ostrzeżenia i błędy.Ostrzeżenia i błędy zwrócone przez serwer teraz zachować ten sam wskaźnik ważności, gdy dane są przekazywane do SQL Server Macierzysta klient. Należy upewnić się, dokładnie przetestowaniu aplikacji Jeśli zależą nadlewki i podlewki poszczególnych ostrzeżeń i błędów.

  • SQL Server Macierzysta klient ma błąd bardziej rygorystyczne sprawdzanie niż składników MDAC, co oznacza, że niektóre aplikacje, które nie ściśle zgodna ze specyfikacją ODBC i OLE DB mogą zachowywać się inaczej.Na przykład dostawca SQLOLEDB nie wymusić regułę, która nazwy parametrów musi zaczynać się od '@' dla parametrów, wynik, ale SQL Server Nie macierzystego dostawca klient OLE DB.

  • SQL Server Klient macierzystym zachowanie różne od składników MDAC w odniesieniu do połączenia nie powiodło się.Na przykład MDAC zwraca wartości właściwość buforowanych dla połączenia, które nie powiodło się, dlatego SQL Server Macierzysta klient zgłasza błąd do aplikacji wywołującej.

  • SQL Server Klient macierzystego nie generuje zdarzeń programu Visual Studio Analyzer, ale zamiast niego generuje zdarzenia śledzenia systemu Windows.

  • SQL Server Macierzysta klient nie może być używany z Monitora wydajności.Monitora wydajności to narzędzie systemu Windows, które mogą być używane tylko ze źródła danych (DSN), które używają sterownika SQLODBC składników MDAC, zawarte w systemie Windows.

  • Kiedy SQL Server Macierzysta klient jest podłączony do SQL Server 2005, zwracany jest błąd serwera 16947 jako SQL_ERROR. Ten błąd występuje wówczas, gdy pozycjonowane aktualizację lub usunięcie zakończy się niepowodzeniem do aktualizacji lub usunięcia wiersza.Z SQL Server 2000 i wersjach wcześniejszych i w składnikach MDAC podczas łączenia się z dowolnej wersja programu SQL Server, zwracany jest błąd serwera 16947 jako ostrzeżenie (SQL_SUCCESS_WITH_INFO).

  • SQL Server Implementuje macierzystym klient IDBDataSourceAdmin interfejs jest interfejsem OLE DB opcjonalny, który nie został wdrożony wcześniej, ale tylko CreateDataSource metoda to opcjonalne interfejsu jest zaimplementowana.This feature will be removed in a future version of Microsoft SQL Server. Avoid using this feature in new development work, and plan to modify applications that currently use this feature.

  • The SQL Server Native klient OLE DB dostawca returns synonyms in the TABLES and TABLE_INFO schema rowsets, with TABLE_TYPE zestaw to SYNONYM.

  • Zwraca wartość typu danych varchar(max), nvarchar(max), varbinary(max), XML, UDTlub innych dużych obiektów może nie będą zwracane do wersji klient wcześniejszy niż SQL Server 2005. Jeśli chcesz użyć tych typów jako wartości zwracane, należy użyć SQL Server Macierzysta klient.

  • Składniki MDAC umożliwia poniższe instrukcje mają być wykonane na początku ręczne i niejawna transakcji, ale SQL Server Nie obsługuje macierzystego klient. Muszą one być wykonywane tryb automatycznego zatwierdzania.

    • Wszystkie operacje pełnego tekstu (indeksu i katalog DDL)

    • Wszystkie bazy danych operacji (Tworzenie bazy danych, zmiany bazy danych, bazy danych, upuszczania)

    • Zmień konfigurację

    • Zamknięcie systemu

    • "Zabicia"

    • kopia zapasowa

  • Podczas łączenia się z aplikacji MDAC SQL Server, typy danych wprowadzonych w SQL Server 2005 zostanie wyświetlone jako SQL Server 2000-dane zgodne typy, jak pokazano w poniższej tabela.

    Typ programu SQL Server 2005

    Typ programu SQL Server 2000

    varchar(max)

    text

    nvarchar(max)

    ntext

    varbinary(max)

    image

    udt

    varbinary

    xml

    ntext

    Mapowania tego typu ma wpływ na wartości zwracane dla kolumna metadane.Na przykład tekst kolumna zawiera maksymalny rozmiar 2 147 483 647, ale SQL Server Macierzysta ODBC klient zgłasza maksymalny rozmiar varchar(max) kolumn jak SQL_SS_LENGTH_UNLIMITED i SQL Server Maksymalny rozmiar raportuje macierzystym klienta OLE DB varchar(max) kolumny jako 2 147 483 647 lub -1, w zależności od platformy.

  • SQL Server Klient macierzystym pozwala niejednoznaczności w ciągów połączeń (na przykład, niektóre słowa kluczowe można określić więcej niż jeden raz i słowa kluczowe powodujące konflikt, dopuszcza się o rozdzielczości na podstawie położenia lub priorytet) ze względu na zgodność z poprzednimi wersjami.W przyszłych wydaniach SQL Server Macierzysta klient mogą nie pozwalać niejednoznaczności w ciągów połączeń. Dobrą praktyką jest podczas modyfikowania aplikacji SQL Server Macierzysta klient w celu wyeliminowania wszelkich zależność od niejednoznaczności ciąg połączenia.

  • Jeśli używasz wywołanie ODBC lub OLE DB uruchomić transakcji różnią się w zachowaniu między SQL Server Klient macierzystych i MDAC; transakcje zaczyna się natychmiast SQL Server Macierzysta klienta, ale transakcje rozpocznie się po pierwszej bazy danych dostęp za pomocą składników MDAC. Może to wpłynąć na działanie procedur przechowywanych i instancje ponieważ SQL Server wymaga @@ TRANCOUNT będzie taki sam, po zakończeniu partia lub procedura przechowywana wykonanie jak podczas uruchamiania programu wsadowego lub procedura przechowywana. Zobacz Rollbacks and Commits in Stored Procedures and Triggers Aby uzyskać więcej informacji.

  • Z SQL Server Klient macierzystą, ITransactionLocal::BeginTransaction spowoduje, że transakcja ma być uruchamiana natychmiast. Ze składników MDAC rozpoczęcia transakcji zostało opóźnione aż aplikacja wykonywana instrukcja, która wymaganych transakcji w trybie transakcja niejawna.Aby uzyskać więcej informacji zobaczSET IMPLICIT_TRANSACTIONS (Transact-SQL).

  • You might encounter errors when using SQL Server Native Client driver with System.Data.Odbc to access a SQL Server server computer that exposes new, SQL Server-specific data types or features.System.Data.Odbc provides a generic ODBC implementation and subsequently does not expose vendor specific functionality or extensions.( SQL Server Macierzysty sterownik klient zostanie zaktualizowany tak, aby zapewnia r. SQL Server funkcje.) Do rozwiązania tego problemu, można albo przywrócić MDAC lub migracji do System.Data.SqlClient.

Oba SQL Server Obsługa klientów macierzystych i MDAC odczytać izolacji transakcji zadeklarowanej utworzenie jego wersji wiersza, ale tylko wtedy SQL Server klient macierzysty obsługuje izolacji transakcji migawka. (W kategoriach programowania izolacji transakcji zadeklarowanej odczytu przy użyciu wersji wiersza jest taka sama, jak transakcja przekazana odczytu). Aby uzyskać więcej informacji zobacz temat Wybieranie wierszy oparte na wersji poziomy izolacji.