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.