Недавно добавленные исходники

•  DeLiKaTeS Tetris (Тетрис)  133

•  TDictionary Custom Sort  3 315

•  Fast Watermark Sources  3 065

•  3D Designer  4 824

•  Sik Screen Capture  3 319

•  Patch Maker  3 533

•  Айболит (remote control)  3 635

•  ListBox Drag & Drop  2 995

•  Доска для игры Реверси  81 551

•  Графические эффекты  3 926

•  Рисование по маске  3 231

•  Перетаскивание изображений  2 612

•  Canvas Drawing  2 735

•  Рисование Луны  2 560

•  Поворот изображения  2 166

•  Рисование стержней  2 161

•  Paint on Shape  1 564

•  Генератор кроссвордов  2 226

•  Головоломка Paletto  1 764

•  Теорема Монжа об окружностях  2 213

•  Пазл Numbrix  1 682

•  Заборы и коммивояжеры  2 052

•  Игра HIP  1 279

•  Игра Go (Го)  1 224

•  Симулятор лифта  1 471

•  Программа укладки плитки  1 214

•  Генератор лабиринта  1 542

•  Проверка числового ввода  1 352

•  HEX View  1 489

•  Физический маятник  1 355

 
скрыть


Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Delphi Sources

Создание ODBC драйвера для MSAccess



Автор: Konstantin Einstein

{ **** 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.




Похожие по теме исходники

Создание таблиц в Paradox

Нейросеть для распознавания образов

Механизм станка качалки для нефти

Весы для взвешивания

 

Кувшины для воды

Доска для игры Реверси




Copyright © 2004-2024 "Delphi Sources" by BrokenByte Software. Delphi World FAQ

Группа ВКонтакте