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

Как создать новый DSN из программы

Delphi , Базы данных , Alias



Автор: Vit
WEB-сайт: http://forum.vingrad.ru

type
  TSQLConfigDataSource =
    function(hwndParent: Integer;
    fRequest: Integer;
    lpszDriverString: string;
    lpszAttributes: string): Smallint; stdcall;

function SQLConfigDataSource(hwndParent: Integer; fRequest: Integer;
  lpszDriverString: string; lpszAttributes: string): Integer; stdcall;
var
  func: TSQLConfigDataSource;
  OdbccpHMODULE: HMODULE;

begin
  OdbccpHMODULE := LoadLibrary('c:\WINDOWS\SYSTEM\odbccp32.dll');
  if OdbccpHMODULE = 0 then
    raise Exception.Create(SysErrorMessage(GetLastError));
  func := GetProcAddress(OdbccpHMODULE, PChar('SQLConfigDataSource'));
  if @func = nil then
    raise Exception.Create('Error Getting adress for SQLConfigDataSource' +
      SysErrorMessage(GetLastError));
  Result := func(hwndParent, fRequest, lpszDriverString, lpszAttributes);
  FreeLibrary(OdbccpHMODULE);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  if SQLConfigDataSource(0, 1, 'Microsoft Excel Driver (*.xls)',
    Format('DSN=%s;DBQ=%s;DriverID=790', ['MyDSNName',
    'c:\temp\temp.xls'])) <> 1 then
    ShowMessage('Cannot create ODBC alias');
end;

PS: Ecли вы собираетесь работать с этим DSN через BDE, то надо закрыть и открыть Session, иначе он не будет доступен

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

Типы и функции Первая секция определяет тип TSQLConfigDataSource, представляющий указатель на функцию SQLConfigDataSource.

Функция SQLConfigDataSource объявлена с четырьмя параметрами: * hwndParent: обработчик родительского окна * fRequest: флаг запроса (1 для создания нового DSN) * lpszDriverString: строка драйвера (в этом случае 'Microsoft Excel Driver (..xls)') * lpszAttributes: строка атрибутов (содержащая имя DSN и другие настройки)

Главная процедура Главная процедура - TForm1.Button1Click, которая создает новый DSN при нажатии кнопки.

Вот, что код делает: * Он загружает библиотеку ODBC32 с помощью LoadLibrary. * Если загрузка fails, он поднимает исключение с ошибкой. * Он получает указатель на функцию SQLConfigDataSource с помощью GetProcAddress. * Если получить адрес fails, он поднимает исключение с ошибкой. * Он вызывает функцию SQLConfigDataSource с указанными параметрами: + hwndParent: 0 (нет родительского окна) + fRequest: 1 (создать новый DSN) + lpszDriverString: 'Microsoft Excel Driver (..xls)' + lpszAttributes: форматированная строка, содержащая имя DSN и другие настройки * Если создание fails, он отображает сообщение с ошибкой.

Дополнительные заметки Комментарий в конце кода упоминает, что если вы планируете работать с этим DSN через BDE (Borland Database Engine), вам нужно закрыть и reopen сессию для DSN, чтобы она стала доступной. Это потому, что BDE кэширует DSNs, и создание нового не автоматически обновляет кэш.

В целом, этот код предоставляет основное пример создания нового ODBC DSN в Delphi с помощью функции SQLConfigDataSource.

Создать новый DSN из программы можно с помощью функции SQLConfigDataSource, которая позволяет настроить параметры ОDBC-коннекта к источнику данных.


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

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




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


:: Главная :: Alias ::


реклама


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

Время компиляции файла: 2024-12-22 20:14:06
2025-05-01 10:40:55/0.0034811496734619/0