Condividi tramite


Origine dati: configurazione di un'origine dati ODBC a livello di codice

In questo argomento viene illustrato come configurare i nomi delle origini dati ODBC (Open Database Connectivity) a livello di codice. In questo modo è possibile accedere ai dati senza forzare l'uso esplicito dell'amministratore ODBC o di altri programmi per specificare i nomi delle origini dati.

In genere, un utente esegue l'amministratore ODBC per creare un'origine dati se il sistema di gestione del database associato supporta questa operazione.

Quando si crea un'origine dati ODBC di Microsoft Access tramite l'amministratore ODBC, sono disponibili due opzioni: è possibile selezionare un file di .mdb esistente oppure creare un nuovo file .mdb. Non è possibile creare il file .mdb dall'applicazione ODBC MFC a livello di codice. Pertanto, se l'applicazione richiede di inserire i dati in un'origine dati di Microsoft Access (.mdb file), è probabile che si voglia avere un file di .mdb vuoto che è possibile usare o copiare ogni volta che necessario.

Tuttavia, molti DBMS consentono la creazione dell'origine dati a livello di codice. Alcune origini dati mantengono una specifica di directory per i database. Ovvero, una directory è l'origine dati e ogni tabella all'interno dell'origine dati viene archiviata in un file separato (nel caso di dBASE, ogni tabella è un file con estensione dbf). I driver per altri database ODBC, ad esempio Microsoft Access e SQL Server, richiedono che alcuni criteri specifici siano soddisfatti prima di poter stabilire un'origine dati. Ad esempio, quando si usa il driver ODBC di SQL Server, è necessario aver stabilito un computer SQL Server.

Esempio di SQLConfigDataSource

Nell'esempio seguente viene utilizzata la ::SQLConfigDataSource funzione API ODBC per creare una nuova origine dati di Excel denominata Nuova origine dati di Excel:

SQLConfigDataSource(NULL,ODBC_ADD_DSN, "Excel Files (*.xls)",
                   "DSN=New Excel Data Source\0"
                   "Description=New Excel Data Source\0"
                   "FileType=Excel\0"
                   "DataDirectory=C:\\EXCELDIR\0"
                   "MaxScanRows=20\0");

Si noti che l'origine dati è effettivamente una directory (C:\EXCELDIR); questa directory deve esistere. Il driver di Excel usa directory come origini dati e file come singole tabelle (una tabella per .xls file).

Per altre informazioni sulla creazione di tabelle, vedere Origine dati: Creazione di una tabella a livello di codice in un'origine dati ODBC.

Le informazioni seguenti illustrano i parametri che devono essere passati alla ::SQLConfigDataSource funzione API ODBC. Per usare ::SQLConfigDataSource, è necessario includere il file di intestazione Odbcinst.h e usare la libreria di importazione Odbcinst.lib. Inoltre, Odbccp32.dll deve trovarsi nel percorso in fase di esecuzione (o Odbcinst.dll per 16 bit).

È possibile creare un nome di origine dati ODBC usando l'amministratore ODBC o un'utilità simile. Tuttavia, a volte è consigliabile creare un nome di origine dati direttamente dall'applicazione per ottenere l'accesso senza richiedere all'utente di eseguire un'utilità separata.

L'amministratore ODBC (in genere installato in Pannello di controllo) crea una nuova origine dati inserendo le voci nel Registro di sistema di Windows (o, per 16 bit, nel file Odbc.ini). Gestione driver ODBC esegue una query su questo file per ottenere le informazioni necessarie sull'origine dati. È importante sapere quali informazioni devono essere inserite nel Registro di sistema perché è necessario fornirla con la chiamata a ::SQLConfigDataSource.

Anche se queste informazioni possono essere scritte direttamente nel Registro di sistema senza usare ::SQLConfigDataSource, qualsiasi applicazione che esegue questa operazione si basa sulla tecnica corrente usata da Gestione driver per gestire i dati. Se una revisione successiva di Gestione driver ODBC implementa il mantenimento dei record sulle origini dati in modo diverso, qualsiasi applicazione che usa questa tecnica viene interrotta. In genere è consigliabile usare una funzione API quando ne viene fornita una. Ad esempio, il codice è portabile da 16 bit a 32 bit se si usa la ::SQLConfigDataSource funzione, perché la funzione scrive correttamente nel file Odbc.ini o nel Registro di sistema.

Parametri DI SQLConfigDataSource

Di seguito vengono illustrati i parametri della ::SQLConfigDataSource funzione . Gran parte delle informazioni sono ricavate dal riferimento del programmatore dell'API ODBC fornito con Visual C++ versione 1.5 e successive.

Prototipo di funzione

BOOL SQLConfigDataSource(HWND hwndParent,UINT fRequest, LPCSTR lpszDriver, LPCSTR lpszAttributes);

Osservazioni:

Parametri e utilizzo

hwndParent
Finestra specificata come proprietario di qualsiasi finestra di dialogo creata da Gestione driver ODBC o dal driver ODBC specifico per ottenere informazioni aggiuntive dall'utente sulla nuova origine dati. Se il parametro lpszAttributes non fornisce informazioni sufficienti, viene visualizzata una finestra di dialogo. Il parametro hwndParent potrebbe essere NULL.

lpszDriver
Descrizione del driver. Questo è il nome presentato agli utenti anziché il nome del driver fisico (DLL).

lpszAttributes
Elenco di attributi nel formato "keyname=value". Queste stringhe sono separate dai caratteri di terminazione Null con due caratteri di terminazione Null consecutivi alla fine dell'elenco. Questi attributi sono principalmente voci specifiche del driver predefinite, che passano al Registro di sistema per la nuova origine dati. Una chiave importante non menzionata nelle informazioni di riferimento sull'API ODBC per questa funzione è "DSN" ("nome origine dati"), che specifica il nome della nuova origine dati. Le altre voci sono specifiche del driver per la nuova origine dati. Spesso non è necessario specificare tutte le voci perché il driver può richiedere all'utente le finestre di dialogo per i nuovi valori. Impostare hwndParent su NULL per causare l'errore. È possibile specificare in modo esplicito i valori predefiniti in modo che l'utente non venga richiesto.

Per determinare la descrizione di un driver per il parametro lpszDriver tramite l'amministratore ODBC

  1. Eseguire l'amministratore ODBC.

  2. Fare clic su Aggiungi.

In questo modo viene visualizzato un elenco di driver installati e le relative descrizioni. Usare questa descrizione come parametro lpszDriver . Si noti che si usa l'intera descrizione, ad esempio "File di Excel (*.xls)", inclusa l'estensione del nome file e le parentesi, se presenti nella descrizione.

In alternativa, è possibile esaminare il Registro di sistema (o, per 16 bit, il file Odbcinst.ini), che contiene un elenco di tutte le voci e le descrizioni del driver nella chiave del Registro di sistema "Driver ODBC" (o la sezione [Driver ODBC] in Odbcinst.ini).

Un modo per trovare i nomi chiave e i valori per il parametro lpszAttributes consiste nell'esaminare il file di Odbc.ini per un'origine dati già configurata (ad esempio una configurata dall'amministratore ODBC).

Per trovare nomi chiave e valori per il parametro lpszAttributes

  1. Eseguire l'editor del Registro di sistema di Windows (o, per 16 bit, aprire il file Odbc.ini).

  2. Trovare le informazioni sulle origini dati ODBC usando una delle opzioni seguenti:

    • Per 32 bit, trovare la chiave HKEY_CURRENT_USER\Software\ODBC\ODBC. INI\ODBC Data Sources nel riquadro sinistro.

      Nel riquadro destro sono elencate le voci del modulo: "pub: REG_SZ:<nome> origine dati", dove <il nome> dell'origine dati è un'origine dati già configurata con le impostazioni desiderate per il driver che si intende usare. Selezionare l'origine dati desiderata, ad esempio SQL Server. Gli elementi che seguono la stringa "pub:" sono, in ordine, il nome chiave e il valore da usare nel parametro lpszAttributes .

    • Per 16 bit, trovare la sezione nel file Odbc.ini contrassegnato da [<nome> origine dati].

      Le righe che seguono questa riga sono nel formato "keyname=value". Queste sono esattamente le voci da usare nel parametro lpszAttributes .

È anche possibile esaminare la documentazione relativa al driver specifico che si intende usare. È possibile trovare informazioni utili nella Guida online per il driver a cui è possibile accedere eseguendo l'amministratore ODBC. Questi file della Guida vengono in genere inseriti nella directory WINDOWS\SYSTEM per Windows NT, Windows 3.1 o Windows 95.

Per ottenere la Guida online per il driver ODBC

  1. Eseguire l'amministratore ODBC.

  2. Fare clic su Aggiungi.

  3. Selezionare il nome del driver.

  4. Fare clic su OK.

Quando l'amministratore ODBC visualizza le informazioni per la creazione di una nuova origine dati per tale driver specifico, fare clic su Guida. Verrà aperto il file della Guida per quel determinato driver, che in genere contiene informazioni importanti sull'uso del driver.

Vedi anche

Origine dati (ODBC)