Share via


SQLDriverConnect

Il driver ODBC di SQL Server Native Client definisce attributi di connessione che sostituiscono o migliorano le parole chiave della stringa di connessione. Per diverse parole chiave della stringa di connessione sono disponibili valori predefiniti specificati dal driver ODBC di SQL Server Native Client.

Per un elenco delle parole chiave disponibili nel provider ODBC di SQL Server Native Client, vedere Utilizzo delle parole chiave delle stringhe di connessione con SQL Server Native Client.

Per ulteriori informazioni sugli attributi di connessione di SQL Server e sui comportamenti predefiniti del driver, vedere SQLSetConnectAttr.

Quando il valore del parametro DriverCompletion di SQLDriverConnect è SQL_DRIVER_PROMPT, SQL_DRIVER_COMPLETE o SQL_DRIVER_COMPLETE_REQUIRED, il driver ODBC di SQL Server Native Client recupera i valori delle parole chiave dalla finestra di dialogo visualizzata. Se il valore della parola chiave viene passato nella stringa di connessione e l'utente non modifica il valore per la parola chiave nella finestra di dialogo, il driver ODBC di SQL Server Native Client utilizza il valore dalla stringa di connessione. Se il valore non è impostato nella stringa di connessione e l'utente non esegue alcuna assegnazione nella finestra di dialogo, il driver utilizza il valore predefinito.

A SQLDriverConnect deve essere assegnato un valore WindowHandle valido quando un valore DriverCompletion richiede o potrebbe richiedere la visualizzazione della finestra di dialogo di connessione del driver. Un handle non valido restituisce SQL_ERROR.

Specificare la parola chiave DRIVER o DSN. ODBC dichiara che un driver utilizza la parola chiave più a sinistra tra le due e ignora l'altra se sono specificate entrambe. Se è specificata la parola chiave DRIVER o questa è la parola chiave più a sinistra tra le due e il valore del parametro DriverCompletion di SQLDriverConnect è SQL_DRIVER_NOPROMPT, sono necessari la parola chiave SERVER e un valore appropriato.

Quando si specifica SQL_DRIVER_NOPROMPT, le parole chiave di autenticazione utente devono essere presenti con valori. Il driver garantisce la presenza della stringa "Trusted_Connection=yes" o delle parole chiave UID e PWD.

Se il valore del parametro DriverCompletion è SQL_DRIVER_NOPROMPT o SQL_DRIVER_COMPLETE_REQUIRED e la lingua o il database proviene dalla stringa di connessione e non è valido, SQLDriverConnect restituisce SQL_ERROR.

Se il valore del parametro DriverCompletion è SQL_DRIVER_NOPROMPT o SQL_DRIVER_COMPLETE_REQUIRED e la lingua o il database proviene dalle definizioni dell'origine dati ODBC e non è valido, SQLDriverConnect utilizza la lingua predefinita per l'ID utente specificato e restituisce SQL_SUCCESS_WITH_INFO.

Se il valore del parametro DriverCompletion è SQL_DRIVER_COMPLETE o SQL_DRIVER_PROMPT e la lingua o il database non è valido, SQLDriverConnect visualizza nuovamente la finestra di dialogo.

Supporto di SQLDriverConnect per nomi SPN (Service Principal Name)

SQLDDriverConnect utilizza la finestra di dialogo Account di accesso di ODBC quando le richieste sono abilitate. In questo modo sarà possibile immettere i nomi SPN per il server principale e il partner di failover.

SQLDriverConnect accetta le nuove parole chiave della stringa di connessione ServerSPN e FailoverPartnerSPN e riconosce i nuovi attributi di connessione SQL_COPT_SS_SERVER_SPN e SQL_COPT_SS_FAILOVER_PARTNER_SPN.

Quando un attributo di connessione viene specificato più di una volta, un valore impostato a livello di programmazione ha la precedenza sul valore in un DSN e su un valore in una stringa di connessione. Un valore in un DSN ha la precedenza su un valore in una stringa di connessione.

Quando si apre una connessione, SQL Server Native Client imposta SQL_COPT_SS_MUTUALLY_AUTHENTICATED e SQL_COPT_SS_INTEGRATED_AUTHENTICATION_METHOD sul metodo di autenticazione utilizzato per aprire la connessione.

Per ulteriori informazioni sui nomi SPN, vedere Nomi SPN (Service Principal Name) nelle connessioni client (ODBC).

Esempi

Nella chiamata seguente viene illustrata la quantità minima di dati necessari per SQLDriverConnect:

SQLDriverConnect(hdbc, hwnd,
    (SQLTCHAR*) TEXT("DRIVER={SQL Server Native Client 10};"), SQL_NTS, szOutConn,
    MAX_CONN_OUT, &cbOutConn, SQL_DRIVER_COMPLETE);

Nelle stringhe di connessione seguenti viene illustrata la quantità minima di dati necessari quando il valore del parametro DriverCompletion è SQL_DRIVER_NOPROMPT:

"DSN=Human Resources;Trusted_Connection=yes"

"FILEDSN=HR_FDSN;Trusted_Connection=yes"

"DRIVER={SQL Server Native Client 10};SERVER=(local);Trusted_Connection=yes"