Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Настройка ODBC-соединения с Microsoft Access без использования DSN в Delphi XE2

Delphi , Графика и Игры , Canvas

В данной статье мы рассмотрим, как настроить ODBC-соединение с базой данных Microsoft Access без использования DSN в Delphi XE2. Мы также рассмотрим альтернативный ответ на этот вопрос.

Описание проблемы

При использовании версии Enterprise Delphi XE2, которая включает в себя встроенную поддержку ODBC dbExpress, пользователь успешно создал "Соединение", где имя базы данных является именем системного DSN, а пароль - пароль базы данных Microsoft Access. Пользователь может щелкнуть "Проверить соединение" на странице "Изменить соединение", и "Проводник базы данных" сообщает, что проверка соединения успешна.

Перетаскивая соединение из "Проводника базы данных", создается компонент TSQLConnection с-properties Driver, установленным в значение "ODBC", а свойства Params содержат следующее:

drivername=ODBC
database=myaccessdbDSN
password=accessdbpwd

Хотя это хорошо работает для тестирования, пользователю не нужно создавать системный DSN для его работы. Пользователь хочет знать, какая строка подключения TSQLConnection будет использоваться при подключении к файлу базы данных Microsoft Access с помощью ODBC.

Решение проблемы

После некоторых экспериментов пользователь нашел решение:

  FSQLConnectionAccess.DriverName := 'ODBC';
  FSQLConnectionAccess.GetDriverFunc := 'getSQLDriverODBCW';
  FSQLConnectionAccess.LibraryName := '';
  FSQLConnectionAccess.VendorLib := 'odbcjt32.dll';
  FSQLConnectionAccess.Params.Values['DriverPackageLoader'] := 'TDBXOdbcDriverLoader';
  FSQLConnectionAccess.Params.Values['IsolationLevel'] := 'ReadCommitted';
  FSQLConnectionAccess.Params.Values['RowSetSize'] := '20';
  FSQLConnectionAccess.Params.Values['Database'] := '?';
  FSQLConnectionAccess.Params.Values['ConnectionString'] := 'DRIVER={Microsoft Access Driver (*.mdb)};'+
                                                      'DBQ=myaccessdb.mdb;'+
                                                      'UID=;'+
                                                      'PWD=accessdbpwd;'+
                                                      'DriverId=25;'+
                                                      'FIL=MS Access;';

Приведенный выше код позволяет подключиться к файлу базы данных Microsoft Access без использования DSN.

Альтернативный ответ

Если пользователь хочет изменить исходный код, он может изменить конструктор TDbxOpenOdbcDriver следующим образом:

constructor TDbxOpenOdbcDriver.Create(DriverDef: TDBXDriverDef);
begin
{$IF CompilerVersion > 18.50}
  inherited Create(DriverDef, TDBXDynalinkDriverLoader);
  InitDriverProperties(TDBXOpenOdbcProperties.Create(DriverDef.FDBXContext));
  // '' makes this the default command factory.
  //AddCommandFactory('', CreateCommandOpenOdbc);
  AddCommandFactory('Dbxoodbc', CreateCommandOpenOdbc);
  //AddCommandFactory(TDBXCommandTypes.DbxMetaData
{$ELSE}
  raise EDbxOODBCDriverError.Create('Not Implemented: DbxOpenOdbcDriver.Create(DriverDef: TDBXDriverDef)');
{$IFEND}
end;

Это позволит использовать драйвер DbxOpenOdbc вместо драйвера ODBC.

Создано по материалам из источника по ссылке.

В статье описывается, как настроить ODBC-соединение с базой данных Microsoft Access без использования DSN в Delphi XE2, а также предлагается альтернативное решение.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Canvas ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 14:22:29/0.012078046798706/0