Udostępnij za pośrednictwem


Jak Przydzielić dojścia i połączyć się z programu SQL Server (ODBC)

Aby przydzielić dojścia i połącz się z programem SQL Server

  1. Dołącz ODBC pliki nagłówków Sql.h, Sqlext.h, sqltypes.h.

  2. Dołącz SQL Server Plik nagłówka specyficzne dla sterownika Odbcss.h.

  3. Wywołanie Procedura SQLAllocHandle with a HandleType obsługuje SQL_HANDLE_ENV zainicjować ODBC i przydzielanie środowisku.

  4. Wywołanie SQLzestawEnvAttr with Attribute zestaw do SQL_ATTR_ODBC_VERSION i ValuePtr zestaw do SQL_OV_ODBC3, aby wskazać, aplikacja będzie korzystać z wywołania funkcja ODBC 3.x formatu.

  5. Opcjonalnie można wywołać SQLzestawEnvAttr do zestaw innych opcji środowiska lub wywołanie SQLGetEnvAttr uzyskanie opcji środowiska.

  6. Wywołanie Procedura SQLAllocHandle with a HandleType z SQL_HANDLE_DBC przydzielić dojścia połączenia.

  7. Opcjonalnie można wywołać SQLSetConnectAttr , aby ustawić opcje połączenia lub wywołanie SQLGetConnectAttr opcje połączenia.

  8. Wywołanie SQLConnect Aby użyć istniejącego urządzenie źródłowe danych do łączenia się z SQL Server.

    Or

    Wywołanie SQLDriverConnectAby połączyć za pomocą ciąg połączenia SQL Server.

    Zakończenie minimum SQL Server ciąg połączenia zawiera jeden z dwóch formach:

    DSN=dsn_name;Trusted_connection=yes;
    DRIVER={SQL Server Native Client 10.0};SERVER=server;Trusted_connection=yes;
    

    Jeśli nie jest pełny, ciąg połączenia SQLDriverConnect może monitować o potrzebne informacje. To jest kontrolowane przez wartość określona dla DriverCompletion parametr.

    - lub -

    Wywołanie SQLBrowseConnect wielokrotnie w sposób iteracji, ciąg połączenia skonstruować przy użyciu, a z SQL Server.

  9. Opcjonalnie można wywołać SQLGetInfo pobrać sterownik atrybuty i zachowanieSQL Server urządzenie źródłowe danych.

  10. Przydzielanie i użyć instrukcji.

  11. Wywołanie SQLDisconnect Aby odłączyć się od SQL Server i udostępnić połączenie obsługi dla nowego połączenia.

  12. Wywołanie SQLFreeHandle with a HandleType obsługuje SQL_HANDLE_DBC do wolnego połączenia.

  13. Wywołanie SQLFreeHandle z HandleType obsługuje SQL_HANDLE_ENV zwolnić środowiska.

Security noteSecurity Note:

Gdy jest to możliwe, należy używać uwierzytelniania systemu Windows.Jeśli uwierzytelnianie systemu Windows nie jest dostępne, monitu użytkowników o wprowadzenie poświadczenia w czasie wykonywania.Należy unikać przechowywania poświadczenia w pliku.Jeśli muszą przetrwać poświadczenia, należy je z zaszyfrować Win32 crypto API.

Example

W tym przykładzie przedstawiono wywołanie SQLDriverConnect Aby połączyć się z wystąpienie SQL Server bez konieczności istniejącego urządzenie źródłowe danych ODBC. Przekazując ciąg połączenia niekompletne SQLDriverConnect, powoduje, że sterownik ODBC monitował użytkownika o podanie brakujących informacji.

#define MAXBUFLEN   255

SQLHENV      henv = SQL_NULL_HENV;
SQLHDBC      hdbc1 = SQL_NULL_HDBC;
SQLHSTMT      hstmt1 = SQL_NULL_HSTMT;

SQLCHAR      ConnStrIn[MAXBUFLEN] =
         "DRIVER={SQL Server Native Client 10.0};SERVER=MyServer";

SQLCHAR      ConnStrOut[MAXBUFLEN];
SQLSMALLINT   cbConnStrOut = 0;

// Make connection without data source. Ask that driver 
// prompt if insufficient information. Driver returns
// SQL_ERROR and application prompts user
// for missing information. Window handle not needed for
// SQL_DRIVER_NOPROMPT.
retcode = SQLDriverConnect(hdbc1,      // Connection handle
                  NULL,         // Window handle
                  ConnStrIn,      // Input connect string
                  SQL_NTS,         // Null-terminated string
                  ConnStrOut,      // Address of output buffer
                  MAXBUFLEN,      // Size of output buffer
                  &cbConnStrOut,   // Address of output length
                  SQL_DRIVER_PROMPT);