Źródło danych: programowe konfigurowanie źródła danych ODBC
W tym temacie wyjaśniono, jak programowo skonfigurować nazwy źródeł danych Open Database Connectivity (ODBC). Zapewnia to elastyczność dostępu do danych bez wymuszania przez użytkownika jawnego używania administratora ODBC lub innych programów w celu określenia nazw źródeł danych.
Zazwyczaj użytkownik uruchamia administratora ODBC w celu utworzenia źródła danych, jeśli skojarzony system zarządzania bazami danych (DBMS) obsługuje tę operację.
Podczas tworzenia źródła danych ODBC programu Microsoft Access za pośrednictwem administratora ODBC można wybrać dwa opcje: możesz wybrać istniejący plik .mdb lub utworzyć nowy plik .mdb. Nie ma programowego sposobu tworzenia pliku .mdb z poziomu aplikacji MFC ODBC. W związku z tym jeśli aplikacja wymaga umieszczenia danych w źródle danych programu Microsoft Access (.mdb pliku), najprawdopodobniej chcesz mieć pusty plik .mdb, którego można użyć lub skopiować zawsze, gdy jest to potrzebne.
Jednak wiele zestawów DBMS zezwala na programowe 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, a każda tabela w źródle danych jest przechowywana w osobnym pliku (w przypadku bazy danych dBASE każda tabela jest plikiem dbf). Sterowniki dla innych baz danych ODBC, takich jak Microsoft Access i SQL Server, wymagają spełnienia określonych kryteriów przed ustanowieniem źródła danych. Na przykład w przypadku używania sterownika ODBC programu SQL Server należy ustanowić komputer z programem SQL Server.
Przykład sqlConfigDataSource
W poniższym przykładzie użyto funkcji interfejsu ::SQLConfigDataSource
API ODBC do utworzenia nowego źródła 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 pamiętać, że źródło danych jest katalogiem (C:\EXCELDIR); ten katalog musi istnieć. Sterownik programu Excel używa katalogów jako źródeł danych i plików jako pojedynczych tabel (jedna tabela na .xls pliku).
Aby uzyskać więcej informacji na temat tworzenia tabel, zobacz Źródło danych: Programowe tworzenie tabeli w źródle danych ODBC.
Poniższe informacje zawierają omówienie parametrów, które należy przekazać do funkcji interfejsu ::SQLConfigDataSource
API ODBC. Aby użyć ::SQLConfigDataSource
polecenia , należy dołączyć plik nagłówka Odbcinst.h i użyć biblioteki importu Odbcinst.lib. Ponadto Odbccp32.dll muszą znajdować się w ścieżce w czasie wykonywania (lub Odbcinst.dll dla 16 bitów).
Możesz utworzyć nazwę źródła danych ODBC przy użyciu administratora ODBC lub podobnego narzędzia. Jednak czasami pożądane jest utworzenie nazwy źródła danych bezpośrednio z aplikacji w celu uzyskania dostępu bez konieczności uruchamiania oddzielnego narzędzia przez użytkownika.
Administrator ODBC (zazwyczaj zainstalowany w Panel sterowania) tworzy nowe źródło danych przez umieszczenie wpisów w rejestrze systemu Windows (lub, w przypadku 16 bitów, w pliku Odbc.ini). Menedżer sterowników ODBC wysyła zapytanie do tego pliku w celu uzyskania wymaganych informacji o źródle danych. Ważne jest, aby wiedzieć, jakie informacje należy umieścić w rejestrze, ponieważ należy podać je za pomocą wywołania metody ::SQLConfigDataSource
.
Mimo że te informacje mogą być zapisywane bezpośrednio w rejestrze bez użycia ::SQLConfigDataSource
metody , każda aplikacja, która to robi, polega na bieżącej technice używanej przez menedżera sterowników do przechowywania danych. Jeśli późniejsza wersja menedżera sterowników ODBC implementuje rejestrowanie źródeł danych w inny sposób, każda aplikacja korzystająca z tej techniki zostanie przerwana. Ogólnie zaleca się użycie funkcji interfejsu API, gdy jest ona udostępniana. Na przykład kod jest przenośny z 16 bitów do 32 bitów, jeśli używasz ::SQLConfigDataSource
funkcji, ponieważ funkcja poprawnie zapisuje w pliku Odbc.ini lub w rejestrze.
Parametry sqlConfigDataSource
Poniżej wyjaśniono parametry ::SQLConfigDataSource
funkcji. Większość informacji pochodzi z dokumentacji programisty interfejsu API ODBC dostarczonej z programem 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 dowolnych okien dialogowych, które są tworzone przez Menedżera sterowników ODBC lub określonego sterownika ODBC w celu uzyskania dodatkowych informacji od użytkownika o nowym źródle danych. Jeśli parametr lpszAttributes nie dostarcza wystarczającej ilości informacji, zostanie wyświetlone okno dialogowe. Parametr hwndParent może mieć wartość NULL.
lpszDriver
Opis sterownika. Jest to nazwa przedstawiona użytkownikom, a nie nazwa sterownika fizycznego (DLL).
lpszAttributes
Lista atrybutów w postaci "keyname=value". Te ciągi są oddzielone terminatorami o wartości null z dwoma kolejnymi terminatorami o wartości null na końcu listy. Te atrybuty są przede wszystkim domyślnymi wpisami specyficznymi dla sterownika, które przechodzą do rejestru dla nowego źródła danych. Ważnym kluczem, który nie został wymieniony w dokumentacji interfejsu API ODBC dla tej funkcji, jest "DSN" ("nazwa źródła danych"), który określa nazwę nowego źródła danych. Pozostałe wpisy są specyficzne dla sterownika dla nowego źródła danych. Często nie jest konieczne podanie wszystkich wpisów, ponieważ sterownik może monitować użytkownika z oknami dialogowymi o nowe wartości. (Ustaw wartość hwndParent na wartość NULL, aby to spowodować). Możesz jawnie podać wartości domyślne, aby użytkownik nie był monitowany.
Aby określić opis sterownika dla parametru lpszDriver przy użyciu administratora ODBC
Uruchom administratora ODBC.
Kliknij przycisk Dodaj.
Zapewnia to listę zainstalowanych sterowników i ich opisów. Użyj tego opisu jako parametru lpszDriver . Należy pamiętać, że używasz całego opisu, takiego jak "Pliki programu Excel (*.xls)", w tym rozszerzenie nazwy pliku i nawiasy, jeśli istnieją w opisie.
Alternatywnie można zbadać rejestr (lub dla 16-bitowego pliku Odbcinst.ini), który zawiera listę wszystkich wpisów i opisów sterowników w kluczu rejestru "Sterowniki ODBC" (lub sekcji [Sterowniki ODBC] w Odbcinst.ini).
Jednym ze sposobów znalezienia nazw kluczy i wartości parametru lpszAttributes jest sprawdzenie pliku Odbc.ini dla już skonfigurowanego źródła danych (być może jeden, który został skonfigurowany przez administratora ODBC).
Aby znaleźć nazwy kluczy i wartości parametru lpszAttributes
Uruchom edytor rejestru systemu Windows (lub w wersji 16-bitowej otwórz plik Odbc.ini).
Znajdź informacje o źródłach danych ODBC, korzystając z jednego z następujących elementów:
W przypadku 32-bitowej znajdź klucz HKEY_CURRENT_USER\Software\ODBC\ODBC. Źródła danych INI\ODBC w okienku po lewej stronie.
W okienku po prawej stronie są wyświetlane wpisy formularza: "pub: REG_SZ:<nazwa> źródła danych", gdzie< nazwa> źródła danych jest źródłem danych, które zostało już skonfigurowane z żądanymi ustawieniami sterownika, którego zamierzasz użyć. Wybierz żądane źródło danych, na przykład program SQL Server. Elementy następujące po ciągu "pub:" są w kolejności kluczname i wartość do użycia w parametrze lpszAttributes .
W przypadku 16-bitowej sekcji znajdź w pliku Odbc.ini oznaczonym przez [<nazwę> źródła danych].
Wiersze następujące po tym wierszu mają postać "keyname=value". Są to dokładnie wpisy do użycia w parametrze lpszAttributes .
Warto również zapoznać się z dokumentacją konkretnego sterownika, którego zamierzasz użyć. Przydatne informacje można znaleźć w pomocy online dla sterownika, do którego można uzyskać dostęp, uruchamiając administratora ODBC. Te pliki Pomocy są zwykle umieszczane w katalogu WINDOWS\SYSTEM dla systemu Windows NT, Windows 3.1 lub Windows 95.
Aby uzyskać pomoc online dla sterownika ODBC
Uruchom administratora ODBC.
Kliknij przycisk Dodaj.
Wybierz nazwę sterownika.
Kliknij przycisk OK.
Gdy administrator ODBC wyświetla informacje dotyczące tworzenia nowego źródła danych dla danego sterownika, kliknij przycisk Pomoc. Spowoduje to otwarcie pliku Pomocy dla tego konkretnego sterownika, który zazwyczaj zawiera ważne informacje dotyczące używania sterownika.