Приветствую Вас Гость | 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

Форма входа

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

Создаём SystemDSN при помощи Delphi
Этот пример показывает один из способов создания ODBC драйвера для доступа к файлу Access MDB. Подобная операция применима к большинству файлов баз данных. Естевственно, Вам потребуется MDB файл, для того, чтобы связать его с DSN. 



const
  ODBC_ADD_DSN = 1; // Добавляем источник данных
  ODBC_CONFIG_DSN = 2; // Конфигурируем (редактируем) источник данных
  ODBC_REMOVE_DSN = 3; // Удаляем источник данных
  ODBC_ADD_SYS_DSN = 4; // Добавляем системный DSN
  ODBC_CONFIG_SYS_DSN = 5; // Конфигурируем системный DSN
  ODBC_REMOVE_SYS_DSN = 6; // удаляем системный DSN

type
  TSQLConfigDataSource = function( hwndParent: HWND; fRequest: WORD;
  lpszDriver: LPCSTR; lpszAttributes: LPCSTR ) : BOOL; stdcall;

procedure Form1.FormCreate(Sender: TObject);
var
  pFn: TSQLConfigDataSource;
  hLib: LongWord;
  strDriver: string;
  strHome: string;
  strAttr: string;
  strFile: string;
  fResult: BOOL;
  ModName: array[0..MAX_PATH] of Char;
  srInfo : TSearchRec;
begin
  Windows.GetModuleFileName( HInstance, ModName, SizeOf(ModName) );
  strHome := ModName;
  while ( strHome[length(strHome)] <> '\' ) do
  Delete( strHome, length(strHome), 1 );
  // Тестовая база данных (Axes = Access)
  strFile := strHome + 'TestData.MDB';
  // загружаем библиотеку (путь по умолчанию)
  hLib := LoadLibrary( 'ODBCCP32' );
  if( hLib <> NULL ) then
  begin
  @pFn := GetProcAddress( hLib, 'SQLConfigDataSource' );
  if( @pFn <> nil ) then
  begin
  // начинаем создание DSN
  strDriver := 'Microsoft Access Driver (*.mdb)';
  strAttr := Format( 'DSN=TestDSN' + #0 + 'DBQ=%s' + #0 +
  'Exclusive=1' + #0 + 'Description=Test Data' + #0 + #0, [strFile] );
  fResult := pFn( 0, ODBC_ADD_SYS_DSN, @strDriver[1], @strAttr[1] );
  if( fResult = false ) then
  ShowMessage( 'Ошибка создания DSN (Datasource) !' );

  // test/create MDB file associated with DSN
  if( FindFirst( strFile, 0, srInfo ) <> 0 ) then
  begin
  strDriver := 'Microsoft Access Driver (*.mdb)';
  strAttr := Format( 'DSN=TestDSN'+#0+ 'DBQ=%s'+#0+ 'Exclusive=1'+#0+
  'Description=Test Data'+#0+ 'CREATE_DB="%s"'#0+#0, [strFile,strFile] );
  fResult := pFn( 0, ODBC_ADD_SYS_DSN, @strDriver[1], @strAttr[1] );
  if( fResult = false ) then
  ShowMessage( 'Ошибка создания MDB (файла базы данных) !' );
  end;
  FindClose( srInfo );
  end;
  FreeLibrary( hLib );
  end
  else
  ShowMessage( 'Невозможно загрузить ODBCCP32.DLL' );
end;
Категория: Alias | Добавил: Skinner (04.07.2008)
Просмотров: 416 | Рейтинг: 0.0/0
  Delphi Lab   Главная   Регистрация   Вход  
Интересная Цитата

Поиск

Магазин


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