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
odbc üstbilgi dosyaları Sql.h, Sqlext.h, Sqltypes.h içerir.
Dahil SQL Serversürücüye özel üstbilgi dosyası, Odbcss.h.
Arama SQLAllocHandle ile bir HandleType, sql_handle_env odbc başlatmak ve bir ortam tanıtıcısı ayırmak için.
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.
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.
Arama SQLAllocHandle ile bir HandleType, sql_handle_dbc bağlantı tanıtıcısı ayrılamadı.
Isteğe bağlı olarak, SQLSetConnectAttr kümesi bağlantı seçenekleri ya da çağrı SQLGetConnectAttr bağlantı seçeneklerini almak için.
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.
Isteğe bağlı olarak, SQLGetInfo sürücü öznitelikleri ve davranış SQL Serververi kaynağını.
Tahsis ve deyimleri kullanın.
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.
Arama SQLFreeHandle ile bir HandleType, sql_handle_dbc bağlantı tanıtıcısı serbest.
Arama SQLFreeHandleile bir HandleType, ortam tanıtıcısı serbest sql_handle_env.
Gü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);