Get ODBC Datasourcenames?

Discussion of open issues, suggestions and bugs regarding UniDAC (Universal Data Access Components) for Delphi, C++Builder, Lazarus (and FPC)
Post Reply
mika
Posts: 20
Joined: Thu 08 May 2014 06:15

Get ODBC Datasourcenames?

Post by mika » Tue 18 Nov 2014 12:03

Is there anyway to get list of data sources names registered with ODBC Administrator (User DSN or System DSN).

I tried with UniConnection.GetDatabaseNames(List), but I only receive error [Microsoft][ODBC Ohjaintenhallinta] Datasource name not found and default driver is not defined. (Sorry might not be correct error, this is translated from Finnish)

AlexP
Devart Team
Posts: 5530
Joined: Tue 10 Aug 2010 11:35

Re: Get ODBC Datasourcenames?

Post by AlexP » Thu 20 Nov 2014 09:50

Hello,

You can retrieve the list of registered DSN using the UniConnectDialog.GetServerList method:

Code: Select all

program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils, Classes, Uni, ODBCUniProvider, UniDacVcl;

var
  UniConnection: TUniConnection;
  UniConnectDialog: TUniConnectDialog;
  Lst: TStringList;
  i: integer;
begin
  UniConnection := TUniConnection.Create(nil);
  try
    UniConnection.ProviderName := 'ODBC';
    UniConnectDialog := TUniConnectDialog.Create(nil);
    try
      UniConnection.ConnectDialog := UniConnectDialog;
      UniConnectDialog.UseServerHistory := False;
      Lst := TStringList.Create;
      try
        UniConnectDialog.GetServerList(Lst);
        for i := 0 to Lst.Count - 1 do
          Writeln(Lst[i]);
      finally
        Lst.Free;
      end;
    finally
      UniConnectDialog.Free;
    end;
  finally
    UniConnection.Free;
    readln;
  end;
end.

Post Reply