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

Наш опрос
Есть ли у Вас свой сайт?
Всего ответов: 48

Статистика

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

Форма входа

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

Читаем файл Access используя ADO
// Читаем файл (любой версии) 
// Проверяем что это ACCESS MDB 
// Нужны компаненты: 
// TADOtable,TDataSource,TOpenDialog,TDBGrid,TBitBtn. 
unit uMain; 

interface 

uses 
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, 
Db, DBTables, ADODB, Grids, DBGrids, ExtCtrls, DBCtrls, StdCtrls, Buttons; 

type 
  TfrmMain = class(TForm) 
  DSUsers: TDataSource; 
  DBGridUsers: TDBGrid; 
  BitBtn1: TBitBtn; 
  OpenDialog1: TOpenDialog; 
  TUsers: TADOTable; 
  procedure FormCreate(Sender: TObject); 
  procedure ValidateAccessDB; 
  function CheckIfAccessDB(lDBPathName: string): boolean; 
  private 
  { Private declarations } 
  public 
  { Public declarations } 
  end; 

var 
  frmMain: TfrmMain; 
const 
  DBNAME = 'ADODemo.MDB'; 
  DBPASSWORD = '123'; // Access DB Password Protected 

implementation 

{$R *.DFM} 

procedure TfrmMain.FormCreate(Sender: TObject); 
begin 
  validateAccessDB; 
end; 

procedure TfrmMain.ValidateAccessDB; 
var 
  lDBpathName : String; 
  lDBcheck : boolean; 
begin 
  if FileExists(ExtractFileDir(Application.ExeName) + '\' + DBNAME) then 
  lDBPathName := ExtractFileDir(Application.ExeName) + '\' + DBNAME 
  else if OpenDialog1.Execute then 
  // Set the OpenDialog Filter for ADOdemo.mdb only 
  lDBPathName := OpenDialog1.FileName; 

  lDBCheck := False; 
  if Trim(lDBPathName) <> '' then 
  lDBCheck := CheckIfAccessDB(lDBPathName); 

  if lDBCheck = True then 
  begin 
  // ADO Connection String to the MS-ACCESS DB 
  TUsers.ConnectionString := 
  'Provider=Microsoft.Jet.OLEDB.4.0;' + 
  'Data Source=' + lDBPathName + ';' + 
  'Persist Security Info=False;' + 
  'Jet OLEDB:Database Password=' + DBPASSWORD; 
  TUsers.TableName := 'Users'; 
  TUsers.Active := True; 
  end 
  else 
  frmMain.Free; 
end; 

// Check if it is a valid ACCESS DB File Before opening it. 

function TfrmMain.CheckIfAccessDB(lDBPathName: string): Boolean; 
var 
  UnTypedFile: file of byte; 
  Buffer: array[0..19] of byte; 
  NumRecsRead: Integer; 
  i: Integer; 
  MyString: string; 
begin 
  AssignFile(UnTypedFile, lDBPathName); 
  reset(UnTypedFile); 
  BlockRead(UnTypedFile, Buffer, High(Buffer), NumRecsRead); 
  CloseFile(UnTypedFile); 
  for i := 1 to High(Buffer) do 
  MyString := MyString + Trim(Chr(Ord(Buffer[i]))); 
  Result := False; 
  if Mystring = 'StandardJetDB' then 
  Result := True; 
  if Result = False then 
  MessageDlg('Invalid Access Database', mtInformation, [mbOK], 0); 
end; 
end.
Категория: Access | Добавил: Skinner (03.07.2008)
Просмотров: 578 | Рейтинг: 0.0/0
  Delphi Lab   Главная   Регистрация   Вход  
Интересная Цитата

Поиск

Магазин


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