Приветствую Вас Гость | RSS

Меню сайта

Реклама

Категории раздела
ADO [17]
ASCII и CSV [12]
Access [20]
Alias [24]
BDE [37]
BLOB поля [19]
Clipper [2]
DB2 [2]
DBASE и DBF [26]
Fox Pro [1]
Interbase [21]
MSSQL [0]
ODBC [10]
Oracle [0]
Paradox [0]
SQL [29]
Sybase [1]
База данных [0]
Закладки [2]
Записи [0]
Индексы [10]
Компоненты и Базы данных [0]
Модуль данных [3]
Отчеты [2]
Ошибки БД [17]
Поиск [16]
Поля [0]
Сортировка и Фильтр [6]
Таблицы [0]

Наш опрос
Оцените мой сайт
Всего ответов: 30

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Форма входа

Главная » Статьи » Базы данных » Access

Создание ODBC драйвера для MSAccess
{ **** UBPFD *********** by delphibase.endimus.com ****
>> Создание ODBC драйвера для MSAccess

Функция создает 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.
Категория: Access | Добавил: Skinner (03.07.2008) | Автор: Konstantin Einstein W
Просмотров: 418 | Рейтинг: 0.0/0
  Delphi Lab   Главная   Регистрация   Вход  
Интересная Цитата

Поиск

Магазин


Copyright MyCorp © 2024 Хостинг от uCoz