Łą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.