Allocare handle e connettersi a SQL Server (ODBC)
Si applica a: SQL Server Database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics Piattaforma di strumenti analitici (PDW)
Per allocare handle e connettersi a SQL Server
Includere i file di intestazione ODBC Sql.h, Sqlext.h, Sqltypes.h.
Includere il file di intestazione specifico del driver di SQL Server, Odbcss.h.
Chiamare SQLAllocHandle con handleType di SQL_HANDLE_ENV per inizializzare ODBC e allocare un handle di ambiente.
Chiamare SQLSetEnvAttr con Attribute impostato su SQL_ATTR_ODBC_VERSION e ValuePtr impostato su SQL_OV_ODBC3 per indicare che l'applicazione userà chiamate di funzione ODBC 3.x-format.
Facoltativamente, chiamare SQLSetEnvAttr per impostare altre opzioni di ambiente o chiamare SQLGetEnvAttr per ottenere le opzioni di ambiente.
Chiamare SQLAllocHandle con handleType di SQL_HANDLE_DBC per allocare un handle di connessione.
Facoltativamente, chiamare SQLSetConnectAttr per impostare le opzioni di connessione o chiamare SQLGetConnectAttr per ottenere le opzioni di connessione.
Chiamare SQLConnect per usare un'origine dati esistente per connettersi a SQL Server.
O
Chiamare SQLDriverConnect per usare un stringa di connessione per connettersi a SQL Server.
Un stringa di connessione di SQL Server completo minimo dispone di una delle due forme seguenti:
DSN=dsn_name;Trusted_connection=yes; DRIVER={SQL Server Native Client 10.0};SERVER=server;Trusted_connection=yes;
Se il stringa di connessione non è completo, SQLDriverConnect può richiedere le informazioni necessarie. Questo controllo è controllato dal valore specificato per il parametro DriverCompletion .
o
Chiamare SQLBrowseConnect più volte in modo iterativo per compilare il stringa di connessione e connettersi a SQL Server.
Facoltativamente, chiamare SQLGetInfo per ottenere gli attributi e il comportamento del driver per l'origine dati di SQL Server.
Allocare e utilizzare le istruzioni.
Chiamare SQLDisconnect per disconnettersi da SQL Server e rendere disponibile l'handle di connessione per una nuova connessione.
Chiamare SQLFreeHandle con handleType di SQL_HANDLE_DBC per liberare l'handle di connessione.
Chiamare SQLFreeHandle con handleType di SQL_HANDLE_ENV per liberare l'handle dell'ambiente.
Importante
Se possibile, usare l'autenticazione di Windows. Se non è disponibile, agli utenti verrà richiesto di immettere le credenziali in fase di esecuzione. Evitare di archiviare le credenziali in un file. Se è necessario rendere persistenti le credenziali, è consigliabile crittografarle usando l'API di crittografia Win32.
Esempio
Questo esempio mostra una chiamata a SQLDriverConnect per connettersi a un'istanza di SQL Server senza richiedere un'origine dati ODBC esistente. Passando un stringa di connessione incompleto a SQLDriverConnect, il driver ODBC chiede all'utente di immettere le informazioni mancanti.
#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);