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

Создание системного DSN для Microsoft Paradox Driver в Delphi

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

При работе с базой данных в Delphi часто требуется создавать системные DSN (Data Source Name) для различных драйверов, в том числе и для Microsoft Paradox Driver. В этой статье мы рассмотрим, как программно создать системный DSN для Paradox Driver с помощью функции SQLConfigDataSource.

Проблема

При попытке создать системный DSN для Microsoft Paradox Driver с помощью функции SQLConfigDataSource в Delphi, пользователь не смог найти документацию о ключах, которые необходимо передавать в параметре lpszAttributes. Несмотря на то, что успешно создавался системный DSN для Microsoft Access, ключи для Paradox Driver оставались неизвестными.

Решение

После изучения комментариев и альтернативных ответов, пользователь нашел решение, следуя подсказке crefird. Оказалось, что ключ к созданию системного DSN для Paradox Driver кроется в правильном указании имени драйвера.

В коде, предоставленном пользователем, имя драйвера было указано как:

'Microsoft Paradox Driver (*.db)'

Однако, правильным названием драйвера является:

'Microsoft Paradox Driver (*.db )'

Как видите, разница только в дополнительном пробеле перед закрывающей скобкой. После корректировки имени драйвера, пользователь смог успешно создать системный DSN для Paradox Driver.

Пример кода

Ниже приведены две процедуры, которые пользователь написал для динамического создания DSN:

implementation

uses Registry, Winapi.Windows, System.SysUtils;

const
  ODBC_ADD_SYS_DSN = 4;  // добавление системного DSN

function SQLConfigDataSource(hwndParent: LongWord; fRequest: Word;
  lpszDriver: PChar; lpszAttributes: PChar): Boolean;
  stdcall; external 'ODBCCP32.DLL' name 'SQLConfigDataSourceW';

procedure CreateParadoxDSN(DataSourceName: string; DataDirectory: string);
var
  Attributes: string;
  RetVal: Boolean;
  DriverName: PChar;
  DirName: string;
begin
  DriverName := 'Microsoft Paradox Driver (*.db )';
  Attributes := 'DSN=' + DataSourceName + #0;
  Attributes := Attributes + 'DefaultDir=' + DataDirectory + #0;
  Attributes := Attributes + 'Dbq=' + DataDirectory + #0;
  Attributes := Attributes + 'UID='#0;
  Attributes := Attributes + 'Fil=Paradox 5.0'#0#0;
  Attributes := Attributes + 'DESCRIPTION=' + DataSourceName + #0#0;
  RetVal := SqlConfigDataSource(0, ODBC_ADD_SYS_DSN, DriverName,
    PChar(Attributes));
  if not RetVal then
  begin
    Exception.Create('Не удалось создать источник данных. Невозможно продолжать');
  end;
end;

function ParadoxDSNExists(DataSourceName: string): Boolean;
var
  Registry: TRegistry;
begin
  Registry := TRegistry.Create;
  try
    Registry.RootKey := HKEY_LOCAL_MACHINE;
    Result := Registry.KeyExists('Software\Wow6432Node\ODBC\ODBC.INI\' +
      DataSourceName);
  finally
    Registry.Free;
  end;
end;

В данном примере процедура CreateParadoxDSN создает системный DSN для Paradox Driver, а функция ParadoxDSNExists проверяет existence системного DSN в реестре.

Следуя приведенному выше примеру, вы можете успешно создавать системные DSN для Microsoft Paradox Driver в Delphi.

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

В контексте рассматривается создание системного DSN для Microsoft Paradox Driver в Delphi с использованием функции `SQLConfigDataSource`, а также решение проблемы, связанной с неизвестными ключами для этого драйвера.


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

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




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


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


реклама


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

Время компиляции файла: 2024-12-22 20:14:06
2025-06-16 00:16:21/0.0050439834594727/1