Создание ODBC драйвера для MSAccessDelphi , Базы данных , Access
Автор: Konstantin Einstein { **** UBPFD *********** by delphibase.endimus.com **** >> Функция создает ODBC драйвер для MSAccess. В функцию передается имя файла и имя для драйвера. В конкретной редакции драйвер создается в разделе "System DSN". Зависимости: Windows, SysUtils, Dialogs, Variants; Автор: Konstantin Einstein Copyright: Konstantin Einstein Дата: 9 декабря 2002 г. ***************************************************** } unit CreateODBCforMDB; interface uses Windows, SysUtils, Dialogs, Variants; const ODBC_ADD_DSN = 1; (* Add data source *) ODBC_CONFIG_DSN = 2; (* Configure (edit) data source *) ODBC_REMOVE_DSN = 3; (* Remove data source *) ODBC_ADD_SYS_DSN = 4; (* add a system DSN *) ODBC_CONFIG_SYS_DSN = 5; (* Configure a system DSN *) ODBC_REMOVE_SYS_DSN = 6; (* remove a system DSN *) type TSQLConfigDataSource = function(hwndParent: HWND; fRequest: WORD; lpszDriver: LPCSTR; lpszAttributes: LPCSTR): BOOL; stdcall; function CreateODBCDriver(fail_name, driver_name: string): Boolean; implementation function CreateODBCDriver(fail_name, driver_name: string): Boolean; var pFn: TSQLConfigDataSource; hLib: LongWord; strDriver, strAttr: string; fResult: BOOL; srInfo: TSearchRec; begin Result := True; hLib := LoadLibrary('ODBCCP32'); //load from default path if (hLib <> NULL) then begin @pFn := GetProcAddress(hLib, 'SQLConfigDataSource'); if (@pFn <> nil) then begin (* force (re-)create DSN *) strDriver := 'Microsoft Access Driver (*.mdb)'; strAttr := Format('DSN=' + driver_name + #0 + 'DBQ=%s' + #0 + 'Exclusive=0' + #0 + 'Description=' + driver_name + ' DSN' + #0 + #0, [fail_name]); fResult := pFn(0, ODBC_ADD_SYS_DSN, @strDriver[1], @strAttr[1]); if (fResult = false) then begin ShowMessage('Create DSN (Datasource) failed!'); Result := False; Exit; end; // test/create MDB file associated with DSN if (FindFirst(fail_name, 0, srInfo) <> 0) then begin strDriver := 'Microsoft Access Driver (*.mdb)'; strAttr := Format('DSN=' + driver_name + #0 + 'DBQ=%s' + #0 + 'Exclusive=0' + #0 + 'Description=' + driver_name + ' DSN' + #0 + 'CREATE_DB="%s"'#0 + #0, [fail_name, fail_name]); fResult := pFn(0, ODBC_ADD_SYS_DSN, @strDriver[1], @strAttr[1]); if (fResult = false) then begin ShowMessage('Create MDB (Database file) failed!'); Result := False; end; end; FindClose(srInfo); end; FreeLibrary(hLib); end else begin ShowMessage('Unable to load ODBCCP32.DLL'); Result := False; end; Result := fResult; end; end. Программный код на языке Delphi для создания драйвера ODBC для файлов Microsoft Access (.mdb). Функция Вот шаги, которые выполняет код:
Код также включает в себя обработку ошибок для случаев, когда библиотека ODBCCP32.DLL не может быть загружена или создание DSN fails. Обратите внимание, что это код специфичен для Delphi и может не работать на других платформах. Кроме того, он требует, чтобы библиотека ODBCCP32.DLL была доступна в системе PATH. Некоторые предложения по улучшению кода:
В целом, это полезный код для создания драйвера ODBC для файлов MSAccess в приложениях на Delphi. В статье описывается функция создания ODBC-драйвера для Microsoft Access, которая позволяет добавлять и настраивать системные DSN (Data Source Names) для доступа к базам данных Access. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |