Udostępnij za pośrednictwem


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

Po zakończeniu alokowania dojścia środowiska i połączeń i ustawianie atrybutów połączenia, dana aplikacja się łączy do urządzenie źródłowe danych lub sterownik.Istnieją trzy funkcje, można użyć do połączenia:

  • SQLConnect

  • SQLDriverConnect

  • SQLBrowseConnect

Aby uzyskać więcej informacji na temat tworzenia połączenia danych urządzenie źródłowe, włączając w to różne połączenia ciąg opcji, zobacz Przy użyciu słów kluczowych ciąg połączenia z SQL Server Native klient.

SQLConnect

SQLConnect jest najprostszym funkcja połączenia.Akceptuje trzy parametry: Nazwa urządzenie źródłowe danych, nazwę użytkownika i hasła. Użycie SQLConnect , gdy te trzy parametry zawierają wszystkie informacje potrzebne do połączenia się z bazą danych.W tym celu należy utworzyć listę źródeł danych za pomocą SQLDataSources; monitować użytkownika o źródle danych, nazwę użytkownika i hasło; a następnie wywołać SQLConnect.

SQLConnect zakłada się, że nazwa urządzenie źródłowe danych, nazwę użytkownika i hasło są wystarczające do połączenia ze źródłem danych i że urządzenie źródłowe danych ODBC zawiera wszystkie inne informacje sterownika ODBC wymaga do nawiązania połączenia.W odróżnieniu od SQLDriverConnect and SQLBrowseConnect, SQLConnect nie korzysta z ciąg połączenia.

SQLDriverConnect

SQLDriverConnect jest używana, gdy wymagana jest więcej informacji niż nazwa urządzenie źródłowe danych, nazwę użytkownika i hasło.Jeden z parametrów SQLDriverConnect jest ciąg połączenia zawierający informacje specyficzne dla sterownika.Za pomocą SQLDriverConnect zamiast SQLConnect z następujących powodów:

  • Aby określić informacje specyficzne dla sterownika w czasie połączenia.

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

  • Aby połączyć się bez użycia urządzenie źródłowe danych ODBC.

The SQLDriverConnect connection ciąg contains a series of keyword-value pairs that specify all connection information supported by an ODBC driver.Każdy sterownik obsługuje standardowych kluczowych ODBC (DSN, FILEDSN, DRIVER, UID, PWD i SAVEFILE), dodatkowo do specyficznych dla sterownika słowa kluczowe dla wszystkich informacji o połączeniu, obsługiwane przez sterownik.SQLDriverConnect można użyć do połączenia bez urządzenie źródłowe danych.Na przykład aplikacja, która jest przeznaczona do "pozbawionego nazwy DSN „ połączenia z wystąpienie programu SQL Server mogą być wywoływane SQLDriverConnect z ciąg połączenia, który określa identyfikator logowania, hasło, bibliotekę sieciową, nazwa serwera do łączenia i domyślne bazy danych do używania.

Podczas korzystania z SQLDriverConnect, dostępne są dwie opcje dla monitu dla dowolnego potrzebne informacje o połączeniu:

  • Okno dialogowe aplikacji

    Można utworzyć okno dialogowe aplikacji, które monituje o podanie informacji o połączeniu, a następnie wywołuje SQLDriverConnect NULL uchwyt okna i DriverCompletion ustawić SQL_DRIVER_NOPROMPT.Te ustawienia parametru uniemożliwić otwieranie swoje własne okno dialogowe sterownika ODBC.Ta metoda jest używana, jeśli ważne jest kontrolować interfejs użytkownika aplikacji.

  • Okno dialogowe sterownika

    Do kodu aplikacji przekazać dojścia do okna prawidłowy SQLDriverConnect a zestawDriverCompletion parametr SQL_DRIVER_COMPLETE, SQL_DRIVER_PROMPT lub SQL_DRIVER_COMPLETE_REQUIRED.Sterownik generuje następnie okno dialogowe, aby monitować użytkownika o informacje o połączeniu.Metoda ta upraszcza kod aplikacji.

SQLBrowseConnect

SQLBrowseConnect, like SQLDriverConnect, wykorzystuje ciąg połączenia.Jednak przy użyciu SQLBrowseConnect, aplikację można skonstruować ciąg połączenia pełną iteratively ze źródłem danych w czasie wykonywania.Dzięki temu aplikacji wykonać dwie czynności:

  • Tworzyć swoje własne okna dialogowe monitujące o podanie tych informacji, w związku z tym zachowaniu kontroli nad jego interfejs użytkownika.

  • Przeglądaj systemowych źródeł danych, które mogą być używane przez określonego sterownika, prawdopodobnie w kilku etapach.

    Na przykład użytkownik może najpierw przeglądać sieć w poszukiwaniu serwerów i, po wybraniu na serwerze, przejdź serwera baz danych dostępne przez sterownik.

Kiedy SQLBrowseConnect zakończy się pomyślnie połączenia, zwraca ciąg połączenia, które mogą być używane w kolejnych wywołaniach SQLDriverConnect.

The SQL Server Native klient ODBC driver always returns SQL_SUCCESS_WITH_INFO on a successful SQLConnect, SQLDriverConnect, or SQLBrowseConnect.Gdy wywołuje aplikacji ODBC SQLGetDiagRec po uzyskiwanie SQL_SUCCESS_WITH_INFO może odbierać następujące komunikaty:

  • 5701
    Wskazuje, że SQL Server Umieść kontekście użytkownika do domyślna baza danych określonych w źródle danych, albo do domyślna baza danych określone dla identyfikator logowania używane w połączeniu, jeśli urządzenie źródłowe danych nie ma domyślna baza danych.

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

W poniższym przykładzie pokazano zwracane w przypadku pomyślnego połączenia przez administrator systemu wiadomości:

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ć komunikaty 5701 i 5703; są wyłącznie informacyjny.Użytkownik powinien nie, jednak ignorować kod zwrotny SQL_SUCCESS_WITH_INFO ponieważ wiadomości innych niż 5701 lub 5703 mogą być zwracane.Na przykład, jeśli sterownik łączy się z serwerem, na którym uruchomiono wystąpienie SQL Server z wykazem nieaktualne przechowywanych procedur, jeden z błędów zwracanych przez SQLGetDiagRec po 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."

Błąd obsługi funkcja aplikacji dla SQL Server połączenia powinien wywoływać SQLGetDiagRec aż zwraca SQL_NO_DATA.Go następnie powinna działać na komunikaty inne niż te z pfNative kod 5701 lub 5703.

Sprawdzanie stan 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 we wcześniejszych wersjach. W SQL Server 2000 a później SQL_ATTR_CONNECTION_DEAD zwraca ostatniego stanu połączenia, które nie mogą być aktualny stan połączenia. SQL_COPT_SS_CONNECTION_DEAD kwerendy zawsze Net-Library dla bieżącego stanu połączenia.

Aby odróżnić te zachowania, SQL_COPT_SS_CONNECTION_DEAD podano nową wartość w SQL Server 2000 a później dołączyć pliki. Aplikacje używające tego atrybut, zbudowanych przy użyciu SQL Server 2000 i nowsze nagłówki zwróci błąd (HY092, identyfikator atrybut/opcji nieprawidłowy), jeśli aplikacje są uruchamiane przy użyciu SQL Server Sterownik w wersja 7.0. Zalecane zastosowania Sprawdzanie wersja sterownik używany przed telefonicznej SQLGetConnectAttr, a następnie użyj SQL_ATTR_CONNECTION_DEAD zamiast SQL_COPT_SS_CONNECTION_DEAD, gdy aplikacja jest uruchomiona na SQL Server Sterownik 7.0.