Aracılığıyla paylaş


Tanıtıcıları ayırmak ve bağlanmak için SQL Server (odbc)

Tanıtıcıları ayırmak ve SQL Server'a bağlanmak için

  1. odbc üstbilgi dosyaları Sql.h, Sqlext.h, Sqltypes.h içerir.

  2. Dahil SQL Serversürücüye özel üstbilgi dosyası, Odbcss.h.

  3. Arama SQLAllocHandle ile bir HandleType, sql_handle_env odbc başlatmak ve bir ortam tanıtıcısı ayırmak için.

  4. Arama SQLSetEnvAttr ile Attributebelirtmek için ayarlamak ve ValuePtrSQL_ATTR_ODBC_VERSION için uygulama odbc 3.x biçimi işlev çağrıları kullanacağı belirtmek için ayarlanır.

  5. Isteğe bağlı olarak, SQLSetEnvAttr diğer ortamı için seçenekleri ya da çağrı SQLGetEnvAttr ortam seçenekleri elde etmek için.

  6. Arama SQLAllocHandle ile bir HandleType, sql_handle_dbc bağlantı tanıtıcısı ayrılamadı.

  7. Isteğe bağlı olarak, SQLSetConnectAttr kümesi bağlantı seçenekleri ya da çağrı SQLGetConnectAttr bağlantı seçeneklerini almak için.

  8. Arama SQLConnectVarolan bir veri kaynağına bağlanmak için kullanılacak SQL Server.

    Or

    Arama SQLDriverConnectbağlanmak için bir bağlantı dizesi kullanmak için SQL Server.

    Tam en az SQL Serverbağlantı dizesi olan bir iki formları:

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

    Bağlantı dizesi tam değilse, SQLDriverConnectiçin gerekli olan bilgiler isteyebilir. Bunun için belirtilen değer tarafından kontrol edilen DriverCompletionparametresi.

    - veya -

    Arama SQLBrowseConnect bağlantı dizisini oluşturmak ve bağlanmak için birden çok kez bir yinelemeli moda SQL Server.

  9. Isteğe bağlı olarak, SQLGetInfo sürücü öznitelikleri ve davranış SQL Serververi kaynağını.

  10. Tahsis ve deyimleri kullanın.

  11. Arama SQLDisconnectbağlantısını kesmek için SQL Serverve işlemek bağlantının yeni bir bağlantı için kullanılabilir yapın.

  12. Arama SQLFreeHandle ile bir HandleType, sql_handle_dbc bağlantı tanıtıcısı serbest.

  13. Arama SQLFreeHandleile bir HandleType, ortam tanıtıcısı serbest sql_handle_env.

Güvenlik notuGüvenlik Notu

Mümkünse Windows Kimlik Doğrulaması kullanın. Windows kimlik doğrulaması kimlik bilgilerini zamanında kullanılabilir, istem girmelerini değilse. Kimlik bilgileri bir dosyada saklamak kaçının. Kimlik ederse gerekir, onlarla şifrelemek Win32 şifreleme API.

Örnek

Bu örnek çağrı SQLDriverConnectörneğine bağlanmak için SQL ServerVarolan bir odbc veri kaynağına gerek kalmadan. Bir eksik bağlantı dizesi geçirerek tarafından SQLDriverConnect, eksik bilgileri girmesini istemek odbc sürücüsü neden oluyor.

#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);

#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);