Origine dati: gestione delle connessioni (ODBC)

Le informazioni contenute in questo argomento sono valide per le classi ODBC MFC.

In questo argomento:

Connettersi a un'origine dati significa stabilire comunicazioni con un SISTEMA DBMS per accedere ai dati. Quando ci si connette a un'origine dati da un'applicazione tramite un driver ODBC, il driver effettua la connessione in locale o attraverso una rete.

È possibile connettersi a qualsiasi origine dati per cui si dispone di un driver ODBC. Anche gli utenti dell'applicazione devono avere lo stesso driver ODBC per l'origine dati. Per altre informazioni sulla ridistribuzione dei driver ODBC, vedere Ridistribuzione dei componenti ODBC ai clienti.

Configurazione di un'origine dati

L'amministratore ODBC viene usato per configurare le origini dati. È anche possibile usare l'amministratore ODBC dopo l'installazione per aggiungere o rimuovere origini dati. Quando si creano applicazioni, è possibile indirizzare gli utenti all'amministratore ODBC per consentire loro di aggiungere origini dati oppure è possibile compilare questa funzionalità nell'applicazione effettuando chiamate dirette all'installazione ODBC. Per altre informazioni, vedere Amministratore ODBC.

È possibile utilizzare un file di Excel come origine dati ed è necessario configurare il file in modo che sia registrato e visualizzato nella finestra di dialogo Seleziona origine dati.

Per usare un file di Excel come origine dati

  1. Configurare il file con l'amministratore dell'origine dati ODBC.

  2. Nella scheda File DSN fare clic su Aggiungi.

  3. Nella finestra di dialogo Crea nuova origine dati selezionare un driver di Excel e quindi fare clic su Avanti.

  4. Fare clic su Sfoglia e selezionare il nome del file da usare come origine data.

Nota

Potrebbe essere necessario selezionare Tutti i file nel menu a discesa per visualizzare i file .xls.

  1. Fare clic su Avanti e quindi su Fine.

  2. Nella finestra di dialogo Programma di installazione di Microsoft Excel ODBC selezionare la versione del database e la cartella di lavoro.

Uso di un ambiente multiutente

Se più utenti sono connessi a un'origine dati, possono modificare i dati mentre vengono modificati nei recordset. Analogamente, le modifiche potrebbero influire sui recordset di altri utenti. Per altre informazioni, vedere Recordset: How Recordsets Update Records (ODBC) and Transaction (ODBC).

Generalizzazione della stringa di connessione

Le procedure guidate utilizzano un stringa di connessione predefinito per stabilire una connessione a un'origine dati. Questa connessione consente di visualizzare tabelle e colonne durante lo sviluppo dell'applicazione. Tuttavia, questa stringa di connessione predefinita potrebbe non essere appropriata per le connessioni degli utenti all'origine dati tramite l'applicazione. Ad esempio, l'origine dati e il percorso della posizione potrebbero essere diversi da quello usato per lo sviluppo dell'applicazione. In tal caso, è consigliabile ripetere la funzione membro CRecordset::GetDefaultConnect in modo più generico ed eliminare l'implementazione della procedura guidata. Ad esempio, usare uno degli approcci seguenti:

  • Registrare e gestire i stringa di connessione usando l'amministratore ODBC.

  • Modificare il stringa di connessione e rimuovere il nome dell'origine dati. Il framework fornisce ODBC come origine dati; in fase di esecuzione, ODBC visualizza una finestra di dialogo che richiede il nome dell'origine dati e qualsiasi altra informazione di connessione richiesta.

  • Specificare solo il nome dell'origine dati. ODBC richiede l'ID utente e la password, se necessario. Ad esempio, prima di generalizzare, il stringa di connessione è simile al seguente:

    CString CApp1Set::GetDefaultConnect()
    {
       return "ODBC;DSN=afx;Trusted_Connection=Yes;";
    }
    

    Questa stringa di connessione specifica una connessione attendibile che usa la sicurezza integrata di Windows NT. È consigliabile evitare di impostare come hardcoded una password o specificare una password vuota, perché in questo modo si crea una grave debolezza di sicurezza. In alternativa, è possibile assegnare GetDefaultConnect un nuovo stringa di connessione in modo da eseguire query per un ID utente e una password.

    // User must select data source and supply user ID and password:
        return "ODBC;";
    // User ID and password required:
        return "ODBC;DSN=mydb;";
    // Password required (myuserid must be replaced with a valid user ID):
        return "ODBC;DSN=mydb;UID=myuserid;";
    // Hard-coded user ID and password (SECURITY WEAKNESS--AVOID):
        return "ODBC;DSN=mydb;UID=sa;PWD=777;";
    

Connessione a un'origine dati specifica

Per connettersi a un'origine dati specifica, l'origine dati deve essere già stata configurata con l'amministratore ODBC.

Per connettersi a un'origine dati specifica

  1. Costruire un CDatabase oggetto .

  2. Chiamare la relativa OpenEx funzione membro o Open .

Per altre informazioni su come specificare l'origine dati se è diversa da quella specificata con una procedura guidata, vedere CDatabase::OpenEx o CDatabase::Open nella Guida di riferimento MFC.

Disconnessione da un'origine dati

È necessario chiudere tutti i recordset aperti prima di chiamare la Close funzione membro di CDatabase. Nei recordset associati all'oggetto CDatabase che si desidera chiudere, tutte le istruzioni o Edit in sospeso vengono annullate e viene eseguito il rollback di tutte le transazioni in sospesoAddNew.

Per disconnettersi da un'origine dati

  1. Chiamare la CDatabase funzione membro Close dell'oggetto.

  2. Eliminare definitivamente l'oggetto a meno che non si voglia riutilizzarlo.

Riutilizzo di un oggetto CDatabase

È possibile riutilizzare un CDatabase oggetto dopo la disconnessione, indipendentemente dal fatto che venga usato per riconnettersi alla stessa origine dati o per connettersi a un'origine dati diversa.

Per riutilizzare un oggetto CDatabase

  1. Chiudere la connessione originale dell'oggetto.

  2. Invece di eliminare definitivamente l'oggetto, chiamare di nuovo la funzione OpenEx o Open membro.

Vedi anche

Origine dati (ODBC)
Origine dati: determinazione dello schema dell'origine dati (ODBC)
Classe CRecordset