Читаем файл Access используя ADO

Советы » 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

.

Другое по теме:

Категории

Статьи

Советы

Copyright © 2022 - All Rights Reserved - www.delphirus.com