Udostępnij za pośrednictwem


Połączenie ze źródłem danych (ODBC)

Po alokowania dojścia środowiska i połączenia i ustawianie atrybutów połączenia, aplikacja łączy źródło danych lub sterownik.Istnieją trzy funkcje, można użyć do połączenia:

  • SQLConnect

  • SQLDriverConnect

  • Procedura SQLBrowseConnect

Aby uzyskać więcej informacji o tworzeniu połączeń danych źródło, włączając połączenia różnych opcji dostępnych, zobacz ciąg Słowa kluczowe ciąg połączenia przy użyciu programu SQL Server Native Client.

SQLConnect

SQLConnect jest najprostszym funkcja połączenia.Przyjmuje trzy parametry: Nazwa źródło danych, identyfikator użytkownika i hasło.Użyj SQLConnect po trzy parametry te zawierają wszystkie informacje potrzebne do połączenia z bazą danych.Aby to zrobić, należy utworzyć listę źródeł danych za pomocą SQLDataSources; Monituj użytkownika o danych źródło, identyfikator użytkownika i hasło; a następnie wywołać SQLConnect.

SQLConnect zakłada, że nazwa źródła danych, identyfikator użytkownika i hasło są wystarczające do połączenia ze źródłem danych i że źródło danych ODBC zawiera wszystkie inne informacje sterownik ODBC wymaga nawiązania połączenia.W odróżnieniu od SQLDriverConnect i procedura SQLBrowseConnect, SQLConnect nie korzysta z połączenia ciąg.

SQLDriverConnect

SQLDriverConnect jest używana, gdy wymagana jest więcej informacji niż nazwa źródło danych, identyfikator użytkownika i hasło.Jeden z parametrów do SQLDriverConnect jest połączeniem ciąg zawierający informacje specyficzne dla sterownika.Można użyć SQLDriverConnect zamiast SQLConnect z następujących powodów:

  • Aby określić informacje specyficzne dla sterownika na łączenie czas.

  • Na żądanie, że sterownik monitować użytkownika o informacje o połączeniu.

  • Połączenia bez użycia źródło danych ODBC.

SQLDriverConnect połączenia ciąg zawiera szereg pary słowo kluczowe wartość, określające wszystkie informacje o połączeniu obsługiwane przez sterownik ODBC.Każdy sterownik obsługuje standard słowa kluczowe ODBC (DSN, FILEDSN, sterownik, UID, PWD i SAVEFILE) oprócz specyficznych dla sterownika słowa kluczowe wszystkie informacje o połączeniu obsługiwane przez sterownik.SQLDriverConnect umożliwia łączenie bez źródło danych.Na przykład aplikacja, która ma na celu tworzenie w "DSN mniej" połączenie z wystąpienie SQL Server można wywołać SQLDriverConnect z połączeniem ciąg definiuje identyfikator logowania, hasło, biblioteki sieciowej, nazwę serwera do łączenia i domyślny bazy danych używać.

Podczas korzystania z SQLDriverConnect, istnieją dwie opcje monitowania użytkownika dla dowolnego potrzebne informacje o połączeniu:

  • Okno dialogowe aplikacji

    Można utworzyć okno dialogowe aplikacji, który monituje o podanie informacji o połączeniu, a następnie wywołuje SQLDriverConnect z uchwyt okna NULL i DriverCompletion zestaw do SQL_DRIVER_NOPROMPT.Te ustawienia parametru uniemożliwić otwieranie okna dialogowego sterownika ODBC.Ta metoda jest używana, gdy sterowania interfejs użytkownika aplikacji.

  • Okno dialogowe sterownika

    Do kodu aplikacji do przekazania uchwyt okna ważne, aby SQLDriverConnect i zestaw DriverCompletion parametru SQL_DRIVER_COMPLETE, SQL_DRIVER_PROMPT lub SQL_DRIVER_COMPLETE_REQUIRED.Sterownik następnie generuje okno dialogowe, aby monitować użytkownika o informacje o połączeniu.Metoda ta upraszcza kod aplikacji.

Procedura SQLBrowseConnect

Procedura SQLBrowseConnect, tak jak SQLDriverConnect, korzysta z połączenia ciąg.Jednak za pomocą procedura SQLBrowseConnect, aplikacji można skonstruować parametry połączenia pełną wielokrotnie powtarzane ze źródłem danych przy uruchomieniu czas.Umożliwia aplikacji wykonać dwie czynności:

  • Tworzenie własnej okna dialogowe monitujące o podanie tych informacji, a tym samym zachowaniu kontroli nad jego interfejs użytkownika.

  • Przeglądaj system dla źródeł danych, które mogą być używane przez określony sterownik, prawdopodobnie w kilku etapach.

    Na przykład użytkownik może najpierw przeglądać sieć w poszukiwaniu serwerów i, po wybraniu serwera, serwer baz danych dostępnych Przeglądaj przez sterownik.

Po procedura SQLBrowseConnect kończy połączenie pomyślne zwraca połączenia ciąg , mogą być używane na kolejne wywołania SQLDriverConnect.

SQL Server Sterownik ODBC macierzystym klienta zawsze zwraca wartość SQL_SUCCESS_WITH_INFO na pomyślne SQLConnect, SQLDriverConnect, lub procedura SQLBrowseConnect.Gdy aplikacja ODBC wywołuje SQLGetDiagRec po założeniu wartość SQL_SUCCESS_WITH_INFO, on pojawić następujące komunikaty:

  • 5701
    Wskazuje, że SQL Server umieścić w kontekście użytkownika do domyślna baza danych w źródle danych lub do domyślna baza danych dla identyfikator logowania używane w połączeniu, jeśli źródło danych nie ma domyślna baza danych.

  • 5703
    Oznacza język używany na serwerze.

Poniższy przykład przedstawia wiadomości zwróconych udane połączenia administrator systemu:

szSqlState = "01000", *pfNativeError = 5701,
szErrorMsg="[Microsoft][SQL Server Native Client][SQL Server]
       Changed database context to 'pubs'."
szSqlState = "01000", *pfNativeError = 5703,
szErrorMsg="[Microsoft][SQL Server Native Client][SQL Server]
       Changed language setting to 'us_english'."

Można zignorować wiadomości 5701 i 5703; są wyłącznie informacyjny.Możesz nie, jednak dopisywanie kod zwrotny wartość SQL_SUCCESS_WITH_INFO ponieważ wiadomości innych niż 5701 lub 5703 mogą być zwracane.Na przykład sterownik, który łączy się z serwerem z systemem wystąpienie SQL Server z wykazu nieaktualne przechowywane procedury, jeden z błędów zwracanych przez SQLGetDiagRec po wartość SQL_SUCCESS_WITH_INFO:

SqlState:   01000
pfNative:   0
szErrorMsg: "[Microsoft][SQL Server Native Client]The ODBC
            catalog stored procedures installed on server
            my65server are version 06.50.0193; version 07.00.0205
            or later is required to ensure proper operation.
            Please contact your system administrator."

obsługa błędów funkcja aplikacji dla SQL Server połączenia powinna wywołać SQLGetDiagRec aż zwróci ona SQL_NO_DATA.Następnie powinna działać na komunikaty, inne niż te z pfNative kod 5701 lub 5703.

Sprawdzanie stanu połączenia

Zachowanie SQL_ATTR_CONNECTION_DEAD i SQL_COPT_SS_CONNECTION_DEAD w SQL Server 2000 i później różni się od zachowania w starszej wersji.W SQL Server 2000 i SQL_ATTR_CONNECTION_DEAD wraca później, najnowsze stan połączenia, może nie być bieżący stan połączenia.SQL_COPT_SS_CONNECTION_DEAD kwerendy zawsze Net-Library dla bieżącego stanu połączenia.

Aby odróżnić zachowań, SQL_COPT_SS_CONNECTION_DEAD podano nową wartość w SQL Server 2000 i jego nowsze wersje plików.Aplikacji za pomocą tego atrybut, utworzonych za pomocą SQL Server 2000 i nowsze nagłówki zwróci błąd (HY092 identyfikator atrybut/opcji w nieprawidłowy), jeśli aplikacje są uruchamiane przy użyciu SQL Server sterownik w wersja 7.0.Zalecane zastosowania Sprawdzanie wersja sterownika używane przed połączeniem SQLGetConnectAttr, a następnie użyj SQL_ATTR_CONNECTION_DEAD zamiast SQL_COPT_SS_CONNECTION_DEAD, jeśli aplikacja działa SQL Server 7.0 sterownika.