Delen via


Gegevensbron: Programmatisch een ODBC-gegevensbron configureren

In dit onderwerp wordt uitgelegd hoe u odbc-gegevensbronnamen (Open Database Connectivity) programmatisch kunt configureren. Dit biedt u flexibiliteit om toegang te krijgen tot gegevens zonder dat de gebruiker expliciet de ODBC-beheerder of andere programma's moet gebruiken om de namen van gegevensbronnen op te geven.

Normaal gesproken voert een gebruiker ODBC-beheerder uit om een gegevensbron te maken als het bijbehorende databasebeheersysteem (DBMS) deze bewerking ondersteunt.

Wanneer u een ODBC-gegevensbron voor Microsoft Access maakt via ODBC-beheerder, hebt u twee opties: u kunt een bestaand .mdb-bestand selecteren of u kunt een nieuw .mdb-bestand maken. Er is geen programmatische manier om het .mdb-bestand te maken vanuit uw MFC ODBC-toepassing. Als uw toepassing vereist dat u gegevens in een Microsoft Access-gegevensbron (.mdb bestand) plaatst, wilt u waarschijnlijk een leeg .mdb bestand hebben dat u kunt gebruiken of kopiëren wanneer u dit nodig hebt.

Veel DBMS's maken echter programmatische gegevensbronnen mogelijk. Sommige gegevensbronnen houden een directoryspecificatie voor databases bij. Dat wil gezegd: een map is de gegevensbron en elke tabel in de gegevensbron wordt opgeslagen in een afzonderlijk bestand (in het geval van dBASE is elke tabel een .dbf-bestand). Stuurprogramma's voor andere ODBC-databases, zoals Microsoft Access en SQL Server, vereisen dat aan bepaalde specifieke criteria wordt voldaan voordat een gegevensbron tot stand kan worden gebracht. Wanneer u bijvoorbeeld het ODBC-stuurprogramma van SQL Server gebruikt, moet u een SQL Server-computer hebben ingesteld.

SQLConfigDataSource-voorbeeld

In het volgende voorbeeld wordt de ODBC-API-functie gebruikt om een nieuwe Excel-gegevensbron met de ::SQLConfigDataSource naam Nieuwe Excel-gegevensbron te maken:

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");

De gegevensbron is eigenlijk een map (C:\EXCELDIR); deze map moet bestaan. Het Excel-stuurprogramma gebruikt mappen als gegevensbronnen en bestanden als de afzonderlijke tabellen (één tabel per .xls bestand).

Zie Gegevensbron: Programmatisch een tabel maken in een ODBC-gegevensbron voor meer informatie over het maken van tabellen.

In de volgende informatie worden de parameters besproken die moeten worden doorgegeven aan de ::SQLConfigDataSource ODBC-API-functie. Als u wilt gebruiken ::SQLConfigDataSource, moet u het odbcinst.h-headerbestand opnemen en de importbibliotheek odbcinst.lib gebruiken. Bovendien moet Odbccp32.dll zich in het pad bevinden tijdens de uitvoertijd (of Odbcinst.dll voor 16 bits).

U kunt een ODBC-gegevensbronnaam maken met odbc-beheerder of een vergelijkbaar hulpprogramma. Soms is het echter wenselijk om rechtstreeks vanuit uw toepassing een gegevensbronnaam te maken om toegang te krijgen zonder dat de gebruiker een afzonderlijk hulpprogramma hoeft uit te voeren.

ODBC-beheerder (meestal geïnstalleerd in het Configuratiescherm) maakt een nieuwe gegevensbron door vermeldingen in het Windows-register te plaatsen (of, voor 16 bits, in het Odbc.ini bestand). Het ODBC-stuurprogrammabeheer voert een query uit op dit bestand om de vereiste informatie over de gegevensbron te verkrijgen. Het is belangrijk om te weten welke informatie in het register moet worden geplaatst, omdat u deze moet opgeven met de aanroep naar ::SQLConfigDataSource.

Hoewel deze informatie rechtstreeks naar het register kan worden geschreven zonder gebruik te maken van ::SQLConfigDataSource, is elke toepassing die dit doet afhankelijk van de huidige techniek die de Driver Manager gebruikt om de gegevens te onderhouden. Als een latere revisie van ODBC Driver Manager op een andere manier records over gegevensbronnen implementeert, wordt elke toepassing die gebruikmaakt van deze techniek verbroken. Het is over het algemeen raadzaam om een API-functie te gebruiken wanneer er een wordt opgegeven. Uw code is bijvoorbeeld draagbaar van 16-bits naar 32-bits als u de ::SQLConfigDataSource functie gebruikt, omdat de functie correct naar het Odbc.ini bestand of naar het register schrijft.

Parameters voor SQLConfigDataSource

Hieronder worden de parameters van de ::SQLConfigDataSource functie uitgelegd. Veel van de informatie is afkomstig uit de ODBC API Programmer's Reference geleverd met Visual C++ versie 1.5 en hoger.

Prototype van functie

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

Opmerkingen

Parameters en gebruik

hwndParent
Het venster dat is opgegeven als eigenaar van dialoogvensters die het ODBC-stuurprogrammabeheer of het specifieke ODBC-stuurprogramma maakt om aanvullende informatie van de gebruiker over de nieuwe gegevensbron te verkrijgen. Als de parameter lpszAttributes onvoldoende informatie levert, wordt er een dialoogvenster weergegeven. De parameter hwndParent kan NULL zijn.

lpszDriver
De beschrijving van het stuurprogramma. Dit is de naam die wordt gepresenteerd aan gebruikers in plaats van de naam van het fysieke stuurprogramma (de DLL).

lpszAttributes
Lijst met kenmerken in het formulier "keyname=value". Deze tekenreeksen worden gescheiden door null-eindtekens met twee opeenvolgende null-eindtekens aan het einde van de lijst. Deze kenmerken zijn voornamelijk standaard stuurprogrammaspecifieke vermeldingen, die naar het register voor de nieuwe gegevensbron gaan. Een belangrijke sleutel die niet wordt vermeld in de ODBC-API-verwijzing voor deze functie is 'DSN' (naam van gegevensbron), waarmee de naam van de nieuwe gegevensbron wordt opgegeven. De overige vermeldingen zijn specifiek voor het stuurprogramma voor de nieuwe gegevensbron. Vaak is het niet nodig om alle vermeldingen op te geven, omdat het stuurprogramma de gebruiker kan vragen om dialoogvensters voor de nieuwe waarden. (Stel hwndParent in op NULL om dit te veroorzaken.) Mogelijk wilt u expliciet standaardwaarden opgeven, zodat de gebruiker niet wordt gevraagd.

De beschrijving van een stuurprogramma voor de parameter lpszDriver bepalen met behulp van ODBC Administrator

  1. Voer ODBC-beheerder uit.

  2. Klik op Toevoegen.

Hiermee krijgt u een lijst met geïnstalleerde stuurprogramma's en de bijbehorende beschrijvingen. Gebruik deze beschrijving als de parameter lpszDriver . Houd er rekening mee dat u de volledige beschrijving gebruikt, zoals 'Excel-bestanden (*.xls)', inclusief de bestandsnaamextensie en haakjes als deze bestaan in de beschrijving.

Als alternatief kunt u het register onderzoeken (of, voor 16-bits, het bestand Odbcinst.ini), dat een lijst bevat met alle vermeldingen en beschrijvingen van stuurprogramma's onder de registersleutel ODBC-stuurprogramma's (of de sectie [ODBC-stuurprogramma's] in Odbcinst.ini).

Een manier om de sleutelnamen en waarden voor de parameter lpszAttributes te vinden, is door het Odbc.ini-bestand te onderzoeken voor een al geconfigureerde gegevensbron (mogelijk een die is geconfigureerd door ODBC-beheerder).

Sleutelnamen en -waarden zoeken voor de parameter lpszAttributes

  1. Voer de Windows-registereditor uit (of open het Odbc.ini-bestand voor 16 bits).

  2. Ga op een van de volgende manieren te werk om informatie over odbc-gegevensbronnen te vinden:

    • Zoek voor 32-bits de sleutel HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Sources in het linkerdeelvenster.

      Het rechterdeelvenster bevat vermeldingen van het formulier: 'pub: REG_SZ:<gegevensbronnaam>', waarbij <de naam> van de gegevensbron een gegevensbron is die al is geconfigureerd met de gewenste instellingen voor het stuurprogramma dat u wilt gebruiken. Selecteer de gewenste gegevensbron, bijvoorbeeld SQL Server. De items na de tekenreeks 'pub:' zijn, in volgorde, de sleutelnaam en waarde die moeten worden gebruikt in de parameter lpszAttributes .

    • Zoek voor 16-bits de sectie in het Odbc.ini bestand dat is gemarkeerd door [<naam> van gegevensbron].

      De regels die op deze regel volgen, zijn van het formulier "keyname=value". Dit zijn precies de vermeldingen die moeten worden gebruikt in de parameter lpszAttributes .

U kunt ook de documentatie bekijken voor het specifieke stuurprogramma dat u gaat gebruiken. U vindt nuttige informatie in de online-Help voor het stuurprogramma, waartoe u toegang hebt door ODBC-beheerder uit te voeren. Deze Help-bestanden worden meestal in de map WINDOWS\SYSTEM voor Windows NT, Windows 3.1 of Windows 95 geplaatst.

Online help verkrijgen voor uw ODBC-stuurprogramma

  1. Voer ODBC-beheerder uit.

  2. Klik op Toevoegen.

  3. Selecteer de naam van het stuurprogramma.

  4. Klik op OK.

Wanneer ODBC-beheerder de informatie weergeeft voor het maken van een nieuwe gegevensbron voor dat specifieke stuurprogramma, klikt u op Help. Hiermee opent u het Help-bestand voor dat specifieke stuurprogramma, dat over het algemeen belangrijke informatie bevat over het gebruik van het stuurprogramma.

Zie ook

Gegevensbron (ODBC)