Scelta di un'origine dati o driver

L'origine dati o il driver usato da un'applicazione a volte è hardcoded nell'applicazione. Ad esempio, un'applicazione personalizzata scritta da un reparto MIS per trasferire i dati da un'origine dati a un'altra conterrà i nomi di tali origini dati. L'applicazione semplicemente non funziona con altre origini dati. Un altro esempio è un'applicazione verticale, ad esempio quella usata per la registrazione dell'ordine. Tale applicazione usa sempre la stessa origine dati, che ha uno schema predefinito noto dall'applicazione.

Altre applicazioni selezionano l'origine dati o il driver in fase di esecuzione. In genere, si tratta di applicazioni generiche che eseguono query ad hoc, ad esempio un foglio di calcolo che usa ODBC per importare dati. Tali applicazioni in genere elencano le origini dati o i driver disponibili e consentono agli utenti di scegliere quelli con cui vogliono lavorare. Se un'applicazione generica elenca origini dati, driver o entrambi spesso dipende dal fatto che l'applicazione usi driver basati su DBMS o basati su file.

I driver basati su DBMS richiedono in genere un set complesso di informazioni di connessione, ad esempio l'indirizzo di rete, il protocollo di rete, il nome del database e così via. Lo scopo di un'origine dati è nascondere tutte queste informazioni. Pertanto, il paradigma dell'origine dati si presta all'uso con i driver basati su DBMS. Un'applicazione può mostrare all’utente un elenco di origini dati in due modi. Può chiamare SQLDriverConnect con la parola chiave DSN (Nome dell’origine dati) e nessun valore associato. Gestione driver mostrerà un elenco di nomi di origine dati. Se l'applicazione vuole controllare l'aspetto dell'elenco, chiama SQLDataSources per recuperare un elenco di origini dati disponibili e costruisce la propria finestra di dialogo. Questa funzione viene implementata da Gestione driver e può essere chiamata prima del caricamento di qualsiasi driver. L'applicazione chiama quindi una funzione di connessione e la passa al nome dell'origine dati scelta.

Se non viene specificata un'origine dati, viene utilizzata l'origine dati predefinita indicata dalle informazioni di sistema. Per altre informazioni, vedere Sottochiave predefinita. Se SQLConnect viene chiamato usando un argomento ServerName che non è possibile trovare, è un puntatore Null o è "DEFAULT", Gestione driver si connette all'origine dati predefinita. L'origine dati predefinita viene usata anche se la stringa di connessione utilizzata in una chiamata a SQLDriverConnect o SQLBrowseConnect contiene la parola chiave DSN impostata su "DEFAULT" o se l'origine dati specificata non viene trovata. Inoltre, l'origine dati predefinita viene usata se la stringa di connessione usata in una chiamata a SQLDriverConnect non contiene la parola chiave DSN.

Con i driver basati su file, è possibile usare un paradigma di file. Per i dati archiviati nel computer locale, gli utenti spesso sanno che i dati si trovano in un determinato file, ad esempio Employee.dbf. Invece di selezionare un'origine dati sconosciuta, è più facile per tali utenti selezionare il file che conoscono. Per implementare questa opzione, l'applicazione chiama prima SQLDrivers. Questa funzione viene implementata da Gestione driver e può essere chiamata prima del caricamento di qualsiasi driver. SQLDrivers restituisce un elenco di driver disponibili, oltre ai valori delle parole chiave FileUsage e FileExtns. La parola chiave FileUsage spiega se i driver basati su file considerano i file come tabelle, come fa Xbase, o come database, come fa Microsoft Access. La parola chiave FileExtns elenca le estensioni di file riconosciute dal driver, ad esempio .dbf per un driver Xbase. Usando queste informazioni, l'applicazione crea una finestra di dialogo tramite cui l'utente sceglie un file. In base all'estensione del file scelto, l'applicazione si connette quindi al driver chiamando SQLDriverConnect con la parola chiave DRIVER.

Non è necessario impedire a un'applicazione di usare un'origine dati con un driver basato su file o chiamare SQLDriverConnect con la parola chiave DRIVER per connettersi a un driver basato su DBMS. Di seguito sono riportati diversi usi comuni della parola chiave DRIVER per i driver basati su DBMS:

  • Non creare origini dati. Ad esempio, un'applicazione personalizzata potrebbe usare un driver e un database specifici. Se il nome del driver e tutte le informazioni necessarie per connettersi al database nell'applicazione sono hardcoded, gli utenti non devono creare un'origine dati nel computer per eseguire l'applicazione. Tutto ciò che devono fare è installare l'applicazione e il driver.

    Uno svantaggio di questo metodo risiede nel fatto che l'applicazione deve essere ricompilata e ridistribuita se le informazioni di connessione cambiano. Se il nome di un’origine dati è hardcoded nell'applicazione, invece di completare le informazioni di connessione, ogni utente deve modificare solo le informazioni nell'origine dati.

  • Accesso a un DBMS specifico una sola volta. Ad esempio, un foglio di calcolo che recupera i dati chiamando le funzioni ODBC potrebbe contenere la parola chiave DRIVER per identificare un determinato driver. Poiché il nome del driver è significativo per tutti gli utenti che dispongono di tale driver, il foglio di calcolo potrebbe essere passato tra gli utenti. Se il foglio di calcolo contiene il nome di un’origine dati, ogni utente dovrà creare la stessa origine dati per usare il foglio di calcolo.

  • Esplorazione del sistema per tutti i database accessibili a un determinato driver. Per altre informazioni, vedere Connessione con SQLBrowseConnect più avanti in questa sezione.