Dazu brauchst du erst mal eine
ODBC-
Api. Und in der gibts den Befehl
SQLDataSources
Weil ich nicht so bin ...
Delphi-Quellcode:
procedure TSQLEnviroment.EnumDataSources(afTyp: TDSNTypes; apEnumProc : TDSNEnumProc; apData : Pointer);
const
ciFirstFetch : array [TDSNTypes] of SQLUSMALLINT =
(SQL_FETCH_FIRST, SQL_FETCH_FIRST_SYSTEM, SQL_FETCH_FIRST_USER);
var cDSN : array [0..SQL_MAX_DSN_LENGTH] of Char;
cDriver : array [0..1023] of Char;
iLenDSN,
iLenDriver : SQLSMALLINT;
begin
if SQLCheck(SQLDataSources(hHandle, ciFirstFetch[afTyp],
@cDSN, SQL_MAX_DSN_LENGTH + 1, iLenDSN,
@cDriver, 1024, iLenDriver)) <> SQL_NO_DATA then
repeat
apEnumProc(cDSN, cDriver, apData); // übergebe
until SQLCheck(SQLDataSources(hHandle, SQL_FETCH_NEXT,
@cDSN, SQL_MAX_DSN_LENGTH + 1, iLenDSN,
@cDriver, 1024, iLenDriver)) = SQL_NO_DATA;
end;
Achtung damit es nicht sinnlos kopiert habe ich absichtlich einige Funktionen nicht mit kopiert.
Die ganzen Klassen haben mir viel Zeit gekostet.