Udostępnij za pośrednictwem


Źródło danych: programowe konfigurowanie źródła danych ODBC

Ten temat tłumaczy jak konfigurować za pomocą programowania nazwy źródeł danych Open Database Connectivity (ODBC).Daje to elastyczność dostępu do danych bez zmuszania użytkownika do użycia administratora ODBC lub innych programów w celu określenia nazw źródeł danych.

Typowo, użytkownik uruchamia administratora ODBC, aby utworzyć źródło danych, jeżeli system zarządzania powiązanej bazy danych (DBMS) obsługuje tę operację.

Podczas tworzenia źródła danych Microsoft Access ODBC przez administratora ODBC, masz dwie możliwości: możesz wybrać istniejący plik .mdb lub utworzyć nowy plik .mdb.Nie ma sposobu na utworzenie za pomocą programowania pliku .mdb z aplikacji MFC ODBC.Tym samym, jeżeli aplikacja wymaga umieszczenia danych w źródle danych Microsoft Access (plik .mdb), najprawdopodobniej chcesz posiadać pusty plik .mdb, który możesz kopiować i używać, kiedy tylko zajdzie taka potrzeba.

Jednak wiele systemów DBMS umożliwia programistyczne tworzenie źródła danych.Niektóre źródła danych utrzymują specyfikację katalogu dla baz danych.Oznacza to, że katalog jest źródłem danych i każda tabela w źródle danych jest przechowywane w oddzielnym pliku (w przypadku programu dBASE każda tabela to plik dbf).Sterowniki dla innych baz danych ODBC, takich jak program Microsoft Access i SQL Server, wymagają, że niektóre szczególne kryteria zostały spełnione, zanim źródło danych zostanie ustalone.Na przykład używając sterownika ODBC SQL Server musisz ustanowić komputer z SQL Server.

Przykład SQLConfigDataSource

W poniższym przykładzie użyto ::SQLConfigDataSource funkcji interfejsu API ODBC, aby utworzyć nowe źródło danych programu Excel o nazwie nowe źródło danych programu 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");

Należy zauważyć, że źródło danych jest w rzeczywistości katalogiem (C:\EXCELDIR); ten katalog musi istnieć.Sterownik programu Excel używa katalogów jako źródła danych i plików jako poszczególnych tabel (jedna tabela na plik xls).

Aby uzyskać więcej informacji dotyczących tworzenia tabel, zobacz Źródło danych: programowe tworzenie tabeli w źródle danych ODBC.

Poniższe informacje omawiają parametry, które muszą zostać przekazane do funkcji ::SQLConfigDataSource interfejsu API ODBC.Aby użyć ::SQLConfigDataSource, musisz uwzględnić plik nagłówka Odbcinst.h i użyć biblioteki importu Odbcinst.lib.Ponadto Odbccp32.dll musi być w ścieżce w czasie wykonywania (lub Odbcinst.dll dla 16-bitowych).

Możesz utworzyć nazwę źródła danych ODBC używając administratora ODBC lub podobnej użyteczności.Jednak czasami lepiej jest utworzyć nazwę źródła danych bezpośrednio z poziomu aplikacji, aby uzyskać dostęp niewymagający od użytkownika uruchamiania oddzielnego narzędzia.

Administrator ODBC (zazwyczaj zainstalowany w panelu sterowania) tworzy nowe źródło danych, umieszczając wpisy w rejestrze systemu Windows (lub w przypadku 16-bitowych, w pliku Odbc.ini).ODBC Driver Manager wysyła zapytanie do tego pliku, aby otrzymać wymagane informacje o źródle danych.Ważne jest, aby wiedzieć, jakie informacje należy umieścić w rejestrze, ponieważ trzeba go dostarczyć z wywołaniem :: SQLConfigDataSource.

Chociaż te informacje mogłyby być zapisywane bezpośrednio w rejestrze bez korzystania z :: SQLConfigDataSource, każda aplikacja, która wykonuje tę funkcję, powołuje się na bieżącą metodę, której Menedżer sterowników używa do przechowywania swoich danych.Jeśli późniejsze poprawki do ODBC Driver Manager zaimplementują przechowywanie rekordów o źródłach danych w inny sposób, każda aplikacja, która korzysta z tej techniki, przestanie działać.Na ogół zaleca się wykorzystanie funkcji API, jeśli została dostarczona.Na przykład Twój kod będzie przeniesiony z 16-bitowego do 32-bitowego, jeśli użyjesz funkcji ::SQLConfigDataSource, ponieważ ta funkcja poprawnie zapisuje dane w pliku Odbc.ini lub w rejestrze.

Parametry SQLConfigDataSource

Poniżej wyjaśniono parametry funkcji :: SQLConfigDataSource.Większość z tych informacji jest pobierana z interfejsu Odwołania programisty API ODBC dostarczanego z Visual C++ w wersji 1.5 lub nowszej.

Prototyp funkcji

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

Uwagi

Parametry i użycie

  • hwndParent
    Okno określone jako właściciel każdego okna dialogowego utworzonego przez Menedżera sterowników ODBC lub konkretny sterownik ODBC w celu uzyskania dodatkowych informacji od użytkownika dotyczących nowego źródła danych.Jeśli parametr lpszAttributes nie dostarcza wystarczających informacji, zostanie wyświetlone okno dialogowe.Parametr hwndParent może mieć wartość NULL.

  • lpszDriver
    Opis sterownika.To nazwa przedstawiana użytkownikom, a nie nazwa sterownika fizycznego (DLL).

  • lpszAttributes
    Lista atrybutów w formie „NazwaKlucza=wartość”.Te ciągi są oddzielane przez zerowe znaki kończące z dwoma kolejnymi znakami kończącymi na końcu listy.Te atrybuty są głównie wpisami charakterystycznymi dla domyślnego sterownika i przechodzą do rejestru dla nowego źródła danych.Jednym ważnym kluczem, który nie jest wymieniony w odwołaniu API ODBC dla tej funkcji jest „DSN” („Nazwa źródła danych”), która określa nazwę nowego źródła danych.Pozostałe wpisy są charakterystyczne dla sterownika dla nowego źródła danych.Często nie jest konieczne dostarczanie wszystkich wpisów, ponieważ sterownik monitować użytkownika przy pomocy okien dialogowych o nowe wartości. (Zestaw hwndParent do NULL , aby to spowodować.) Aby użytkownik nie dostawał monitów, można od razu jawnie dostarczyć domyślne wartości.

Aby określić opis sterownika dla parametru lpsDriver z wykorzystaniem administratora ODBC

  1. Uruchom administratora ODBC.

  2. Kliknij przycisk Dodaj.

Daje to listę zainstalowanych sterowników i ich opisów.Użyj tego opisu, jako parametru lpszDriver.Należy zauważyć, że używasz cały opis, na przykład „Pliki programu Excel (*.xls)”, łącznie z rozszerzeniem nazwy pliku i nawiasami, jeśli istnieją w opisie.

Alternatywnie, można zbadać rejestr (lub, w przypadku 16-bitowych, plik Odbcinst.ini), który zawiera listę wszystkich wpisów sterowników i opisy w kluczu rejestru "Sterowniki ODBC" (lub sekcji [ODBC Drivers] Odbcinst.ini).

Jednym ze sposobów odszukania nazw kluczy i wartości dla parametru lpszAttributes jest zbadanie pliku Odbc.ini pod kątem już skonfigurowanego źródła danych (np. tego, który został skonfigurowany przez administratora ODBC).

Aby odnaleźć nazwy kluczowe i wartości dla parametru lpszAttributes

  1. Uruchom edytor rejestru systemu Windows (lub dla 16-bitowych, otwórz plik Odbc.ini).

  2. Znajdź źródła danych ODBC za pomocą jednej z następujących czynności:

    • W systemach 32-bitowych znajdź klucz HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Sources w lewym okienku.

      Okienku po prawej stronie wyświetla wpisy formularza: "pub: REG_SZ:<Nazwa źródła danych>", gdzie <Nazwa źródła danych> jest źródłem danych, który został już skonfigurowany z żądane ustawienia sterownika ma być używany.Wybierz żądane źródło danych, na przykład SQL Server.Elementy występujące po ciągu znaków "pub:" są w kolejności, nazwą klucza i wartością do użycia w parametrze lpszAttributes.

    • Dla 16-bitowych, znajdź sekcję w pliku Odbc.ini oznaczonym [<Nazwś źródła danych>].

      Wiersze występujące po tym wierszu mają postać "nazwa klucza=wartość".Są to wpisy do użytku w Twoim parametrze lpszAttributes.

Przydatne może być też zbadanie dokumentacji dla określonego sterownika, którego zamierza się użyć.Możesz odnaleźć przydatne informacje w pomocy online dla sterownika, do której możesz uzyskać dostęp uruchamiając administratora ODBC.Te pliki pomocy są zwyczajowo umieszczane w katalogu WINDOWS\SYSTEM dla Windows NT, Windows 3.1 lub Windows 95.

Aby otrzymać pomoc online dla sterownika ODBC

  1. Uruchom administratora ODBC.

  2. Kliknij przycisk Dodaj.

  3. Wybierz nazwę sterownika.

  4. Kliknij przycisk OK.

Kiedy administrator ODBC wyświetla informacje do tworzenia nowego źródła danych dla tego konkretnego sterownika kliknij Pomoc.Otwiera to plik pomocy dla tego konkretnego sterownika, który typowo zawiera ważne informacje na temat użycia sterownika.

Zobacz też

Koncepcje

Źródło danych (ODBC)