Udostępnij za pośrednictwem


Uaktualnianie aplikacji do programu SQL Server Native Client MDAC

Istnieje wiele różnic między SQL Server Native Client i Microsoft Data Access Components (MDAC; począwszy od systemu Windows Vista, data access components są teraz nazywane Windows Data Access Components lub Windows DAC).Chociaż oba rozwiązania zapewniają dostęp do danych w trybie macierzystym do SQL Server baz danych, SQL Server Native Client jest przeznaczona do udostępnienia nowych funkcji SQL Server 2005, podczas gdy w tym samym czas zachowania zgodności z poprzednimi wersjami z wcześniejszych wersji.

Informacje w tym temacie ułatwia aktualizowanie składników MDAC (lub Windows DAC) aplikacji bieżącej wersja programu SQL Server Native Client, która została uwzględniona w SQL Server 2005.Pomaga w tej aplikacji, należy w bieżącej wersja programu SQL Server Native Client dostarczone w SQL Server 2008 R2, zobacz Uaktualnianie aplikacji do programu SQL Server 2008 R2 Native Client z klientami programu SQL Server 2005.

Ponadto, chociaż MDAC zawiera składniki za pomocą OLE DB, ODBC i ActiveX Data Objects (ADO), SQL Server Native Client implementuje tylko OLE DB i ODBC (chociaż ADO można uzyskać dostępu do funkcji SQL Server Native Client).

SQL ServerMacierzysta klienta i MDAC różnią się w następujących obszarach:

  • Użytkownicy, którzy korzystają z dostępu do obiektów ADO SQL Server Native Client dostawca może okazać się mniej funkcji filtrowania, niż kiedy one dostępne dostawcy SQL OLE DB.

  • Jeśli aplikacja ADO wykorzystuje SQL Server Native Client i prób aktualizacji kolumna obliczana, zostanie zgłoszony błąd.Z MDAC aktualizacja została zaakceptowana, ale ignorowane.

  • SQL ServerKlientami jest niezależnym dołączanej pojedynczego pliku biblioteki (DLL).Były trzymane publicznie interfejsów do minimum, zarówno w celu ułatwienia dystrybucji, jak również ograniczenie narażenia zabezpieczeń.

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

  • SQL Server Macierzystego klienta dostawca OLE DB i nazwy sterownika ODBC różnią się od tych z MDAC.

  • Dostępna dla użytkownika funkcjonalność dostarczonych przez składniki MDAC jest dostępne podczas korzystania z SQL Server macierzystego klienta.Obejmuje, ale nie jest ograniczone do następujących: buforowania ADO obsługi połączeń i kursor kliencki obsługi.Jeśli funkcje te są używane, SQL Server Native Client dostaw tylko bazy danych łączność.Składniki MDAC zawiera funkcje, takie jak śledzenie, zarządzania, kontroli i liczników wydajności.

  • Aplikacje mogą używać usług podstawowych OLE DB z SQL Server Native Client, ale jeśli przy użyciu aparatu kursor OLE DB one należy użyć opcji zgodności typu danych Aby uniknąć potencjalnych problemów, które mogą powstać, ponieważ nie ma aparat kursora wiedza nowej SQL Server 2005 typów danych.

  • SQL ServerKlient macierzysty obsługuje dostęp do poprzednich SQL Server baz danych począwszy od SQL Server 7.0 i nowszych wersji.

  • SQL ServerNative Client nie ma integracja XML.SQL ServerKlient macierzysty obsługuje wybierz … DLA XML kwerendy, ale nie obsługuje inne funkcje XML.Jednakże SQL Server obsługuje Native Client xml Typ danych wprowadzonych w SQL Server 2005.

  • SQL ServerNative Client obsługuje konfigurowanie biblioteki sieciowe klienta przy użyciu tylko połączenia ciąg atrybuty.Jeśli potrzebujesz więcej pełną konfiguracja biblioteki sieciowej, należy użyć SQL Server Menedżer konfiguracja.

  • SQL ServerNative Client jest niezgodny z odbcbcp.dll.Aplikacje używające zarówno ODBC i bcp API musi odbudowany do łączenia z sqlncli10.lib, aby użyć SQL Server macierzystego klienta.

  • SQL ServerNative Client 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 MDAC SQLODBC sterownika z ADO użyć OLE DB w SQL Server macierzystego klienta.

  • Ciągi połączeń MDAC umożliwia wartość logiczna (true) dla Trusted_Connection słów kluczowych.A SQL Server połączenia Native Client ciąg należy użyć yes lub no.

  • Niewielkie zmiany wystąpiły ostrzeżenia i błędy.Ostrzeżeń i błędów zwracane przez serwer teraz zachować ten sam wskaźnik ważności przekazany do SQL Server macierzystego klienta.Powinny zapewnić, aby aplikacja została gruntownie przetestowana, jeśli zależą zalewkowanie szczególnych ostrzeżeń i błędów.

  • SQL ServerKlientami ma bardziej rygorystyczne niż MDAC, co oznacza, że niektóre aplikacje, które nie odpowiadają ściśle ze specyfikacją ODBC i OLE DB mogą zachowywać się inaczej do sprawdzania błędów.Na przykład dostawca SQLOLEDB nie wymuszały reguła, nazwy parametrów musi zaczynać się od '@' wynik parametrów ale SQL Server macierzystego klienta OLE DB dostawca wykonuje.

  • SQL ServerNative Client działa inaczej z MDAC w odniesieniu do połączenia nie powiodło się.Na przykład MDAC zwraca wartości buforowanych właściwość połączenia, które nie powiodło się, należy SQL Server Native Client zgłasza błąd do aplikacji wywołującej.

  • SQL ServerKlient macierzysty nie generuje zdarzenia program Visual Studio Analyzer, ale zamiast generuje zdarzenia śledzenia systemu Windows.

  • SQL ServerNative Client nie korzystać z Monitora wydajności.Perfmon jest narzędzie Windows, która może być używana tylko z nazwy DSN, używające sterownika MDAC SQLODBC, zawarte w systemie Windows.

  • Gdy SQL Server Native Client jest podłączony do SQL Server 2005, zwracany jest błąd serwera 16947 jako wartość SQL_ERROR.Ten błąd występuje, gdy aktualizacja pozycjonowana lub Usuń nie powiedzie się zaktualizować lub usunąć wiersz.Z SQL Server 2000 i wcześniejszych wersjas i z MDAC podczas nawiązywania połączenia z dowolnym wersja z SQL Server, jako ostrzeżenie (wartość SQL_SUCCESS_WITH_INFO) jest zwracany błąd serwera 16947.

  • SQL ServerImplementuje Native Client IDBDataSourceAdmin interfejsu, który jest opcjonalny interfejs OLE DB, który nie był uprzednio wdrożone, ale tylko CreateDataSource zaimplementowano metoda interfejsu opcjonalne. Ta funkcja zostanie usunięta z przyszłej wersji programu Microsoft SQL Server. Należy unikać stosowania tej funkcji w nowych projektach oraz zaplanować modyfikację aplikacji, w których obecnie jest używana ta funkcja.

  • SQL Server Macierzystego klienta dostawca OLE DB zwraca synonimy w TABELACH i TABLE_INFO wiersza schematuzestaws z TABLE_TYPE zestaw do SYNONIM.

  • Zwraca wartości typu danych varchar(max), nvarchar(max), varbinary(max), xml, udt, lub innych dużych obiektów nie mogą być zwracane do klient wersji starszej niż SQL Server 2005.Jeśli chcesz użyć jako wartości zwracane tych typów, należy użyć SQL Server macierzystego klienta.

  • Poniższe instrukcje mają być wykonane na początku transakcji ręcznej i niejawna umożliwia MDAC, ale SQL Server Native Client jest nie.Muszą one być wykonane tryb autozatwierdzania wynosi.

    • Wszystkie operacje pełnego tekstu (indeks i wykazu DDL)

    • Wszystkie bazy danych operacji (Tworzenie bazy danych, zmiany bazy danych, baza danych rozwijanej)

    • Zmień konfigurację

    • Zamknięcia systemu

    • Kasuj

    • Kopia zapasowa

  • Podczas łączenia się z aplikacji MDAC SQL Server, typy danych wprowadzonych w SQL Server 2005 pojawią się jako SQL Server 2000— typy danych, 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

    Mapowanie typu dotyczy wartości zwracane dla kolumna metadane.Na przykład tekstu kolumna ma maksymalny rozmiar 2 147 483 647, ale SQL Server macierzystego klienta ODBC zgłasza maksymalny rozmiar varchar(max) kolumny jako SQL_SS_LENGTH_UNLIMITED, i SQL Server macierzystym klienta OLE DB raporty maksymalny rozmiar varchar(max) kolumny 2 147 483 647 lub -1, w zależności od platformy.

  • SQL ServerNative Client umożliwia niejasnoś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 sprzecznych słowa kluczowe, dopuszcza się o rozdzielczości na podstawie stanowiska lub pierwszeństwo) ze względu na zgodność wstecz.Przyszłych wersjach SQL Server Native Client może nie zezwolić na wieloznaczność ciągów połączenia.Podczas modyfikowania aplikacji do korzystania z dobrą praktyką jest SQL Server Native Client, aby wyeliminować wszelkie zależności połączenia ciąg niejednoznaczności.

  • Jeśli używasz wywołanie ODBC lub OLE DB do rozpoczęcia transakcji jest różnica w zachowaniu między SQL Server Native Client i MDAC; transakcje rozpocznie się natychmiast z SQL Server Native Client, ale transakcje rozpocznie się po pierwszym dostępu do bazy danych przy użyciu składników MDAC.Może to wpłynąć na zachowanie procedur przechowywanych i partiaes ponieważ SQL Server wymaga @@ TRANCOUNT sam po partia lub procedura składowana kończy wykonywanie, gdy był partia lub uruchomić procedura składowana.Zobacz Wycofywanie zmian i zatwierdzenia procedur przechowywanych i wyzwalaczy więcej informacji.

  • Z SQL Server Native Client ITransactionLocal::BeginTransaction spowoduje, że transakcja ma być uruchamiana natychmiast.Z MDAC rozpoczęcia transakcji była opóźniona aż aplikacji wykonywana instrukcja, która wymaga transakcji w transakcja niejawna tryb.Aby uzyskać więcej informacji, zobacz ZESTAW 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 Sterownik native Client jest aktualizowany do macierzystej obsługi najnowszych SQL Server funkcji.) W celu obejścia tego problemu można przywrócić składników MDAC, lub migracji do System.Data.SqlClient.

Obie SQL Server Obsługa Native Client i MDAC odczytać izolację transakcja przekazana za pomocą wersji wiersza, ale tylko wtedy SQL Server obsługuje Native Client izolacji transakcji migawka.(W terminologii programistycznej izolację odczytu transakcja przekazana za pomocą wersji wiersza jest taka sama jak transakcja przekazana odczytu). Aby uzyskać więcej informacji, zobacz temat Wybór wierszy na podstawie wersji poziomów izolacji.