OdbcDataSources
Die Anweisung ermittelt die im ODBC-Datenquellen-Administrator eingetragenen Datenquellen. Dazu muss in (obj) der von ``OdbcOpen() zurückgegebene Deskriptor angegeben werden. Werden in (int1) keine weiteren Optionen angegeben, wird ein Deskriptor auf ein CteList-Objekt mit allen Datenquellen zurückgegeben.
-
_OdbcDataSourcesSystemEs werden nur die System-Datenquellen zurückgegeben. Die Option kann mit
_OdbcDataSourcesUserkombiniert werden, um alle Datenquellen zu ermitteln. -
_OdbcDataSourcesUserEs werden nur die Benutzer-Datenquellen zurückgegeben. Die Option kann mit
_OdbcDataSourcesSystemkombiniert werden, um alle Datenquellen zu ermitteln. -
_OdbcDataSourcesTreeAnstelle einer Liste wird eine sortierte Liste zurückgegeben. Die Option ist nicht mit
_OdbcDataSourcesTreeCIkombinierbar. -
_OdbcDataSourcesTreeCIAnstelle einer Liste wird eine sortierte Liste ohne Berücksichtigung der Groß-/Kleinschreibung zurückgegeben. Die Option ist nicht mit
_OdbcDataSourcesTreekombinierbar.
In der zurückgegebenen Liste ist für jede Datenquelle ein CteItem-Objekt vorhanden. In der Eigenschaft Name ist der Name der Datenquelle, in der Eigenschaft Custom die Beschreibung enthalten.
Unter 64-Bit-Systemen befindet sich die relevante "Microsoft ODBC Administrator" Anwendung im Verzeichnis Windows\SysWOW64\ unter dem Namen odbcad32.exe.
Steht zur Ausführung der Anweisung nicht genügend Hauptspeicher zur Verfügung, wird der Fehler _ErrOutOfMemory zurückgegeben.
Beispiele:
Ermitteln einer unsortierten Liste aller Datenquellen:
tOdbcApi # OdbcOpen();
tOdbcSourceList # tOdbcApi->OdbcDataSources();
for tOdbcSource # tOdbcSourceList->CteRead(_CteFirst);
loop tOdbcSource # tOdbcSourceList->CteRead(_CteNext, tOdbcSource);
while (tOdbcSource > 0)
{
tSourceName # tOdbcSource->spName;
tSourceRemark # tOdbcSource->spCustom;
...
}
tOdbcApi->OdbcClose();
Ermitteln aller System-Datenquellen nach Namen sortiert (ohne Berücksichtigung der Groß-/Kleinschreibung):
tOdbcApi # OdbcOpen();
tOdbcSourceList # tOdbcApi->OdbcDataSources(_OdbcDataSourcesSystem | _OdbcDataSourcesTreeCI);
for tOdbcSource # tOdbcSourceList->CteRead(_CteFirst);
loop tOdbcSource # tOdbcSourceList->CteRead(_CteNext, tOdbcSource);
while (tOdbcSource > 0)
{
tSourceName # tOdbcSource->spName;
tSourceRemark # tOdbcSource->spCustom;
...
}
tOdbcApi->OdbcClose();
Mögliche Laufzeitfehler:
_ErrHdlInvalid: Im (obj) wurde kein gültiger Deskriptor auf ein OdbcApi-Objekt übergeben.