TSQLConnection к выбранному пользователем DSN во время выполнения - PullRequest
1 голос
/ 01 марта 2010

Я хочу использовать dbExpress и объект TSQLConnection, чтобы позволить пользователю моего приложения подключиться к любому из своих ODBC dsn и выполнить SQL-запрос к нему.

У меня есть, чтобы пользователь мог выбрать DSN (под DSN я имею в виду все настроенные источники данных, перечисленные в панели управления - инструменты администрирования - источники данных (ODBC)), но как только они выбрали Я не уверен, как настроить объект TSQLConnection.

Я думаю, мне нужно установить:

SQLCon.connectionName

SQLCon.driverName

SQLCon.getDriverFunc

В настройках реестра для данного DSN у меня есть запись 'DRIVER', которая указывает на DLL, но ничего не указывает на значение 'getDriverFunc'.

Есть ли у кого-нибудь совет или пример настройки TSQLConnection (или любого другого соединения delphi db) с ODBC DSN во время выполнения?

Спасибо

Ответы [ 5 ]

2 голосов
/ 01 марта 2010

Вот как это сделать в TADOConnection:

это строка подключения для провайдера ODBC (системный DSN):

Provider=MSDASQL;DSN=mySystemDSN;Uid=myUsername;Pwd=myPassword

и вот демонстрация, показывающая, как вы можете использовать его для подключения к DSN с именем «SQLServerDSN» с пользователем «sa» и паролем «pass»:

procedure TForm1.Button1Click(Sender: TObject);
begin
  ADOConnection1.ConnectionString := 'Provider=MSDASQL;DSN='+
  'SQLServerDSN;Uid=sa;Pwd=pass';
  ADOConnection1.Connected := true;
end; 

Надеюсь, это поможет.

2 голосов
/ 01 марта 2010

Я обнаружил, что лучший способ сделать это - использовать TADOConnection и просто указать DSN в строке подключения.

1 голос
/ 01 марта 2010
  1. Если вам нужно работать с ODBC DSN с помощью технологии dbExpress, вам необходимо загрузить и использовать «Kylix / Delphi драйвер с открытым исходным кодом для ODBC» с http://open -dbexpress.sourceforge.net . Там вы можете найти примеры подключения, функцию для списка DSN. и т.д.
  2. Если у вас есть что-то более простое, то вы можете использовать TADOConnection и MSDASQL-провайдера OLEDB, который является OLEDB -> ODBC мост-провайдером. T
  3. Если вам нужна расширенная поддержка ODBC от Delphi, вам следует обратиться к продуктам сторонних производителей.

Итак, решите, что вам нужно, тогда я смогу предоставить вам несколько образцов.

0 голосов
/ 01 марта 2010

Вероятно, лучший ресурс для использования строки подключения - connectionstrings.com Для использования ODBC с dbExpress вам потребуется драйвер ODBC .

0 голосов
/ 01 марта 2010

Не использовал DBexpress, но если вы используете ADB, в блоке ADO есть готовый метод.
Я думаю, что вы можете использовать это, и если нужно, вы можете изменить часть сома строки, которую он возвращает.

Метод ADODB.PromptDataSource;

...