Delphi - объектно-ориентированный язык программирования, разработанный компанией Borland в 1995 году. Он основан на языке программирования Pascal, но имеет более расширенные возможности и добавлены новые функции.
Delphi является интегрированной средой разработки (IDE), которая позволяет разрабатывать программное обеспечение для различных платформ, включая Windows, macOS, Android и iOS. Delphi достигает многоплатформенности с помощью...
// Читаем файл (любой версии) // Проверяем что это ACCESS MDB // Нужны компаненты: // TADOtable,TDataSource,TOpenDialog,TDBGrid,TBitBtn. unituMain; 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. functionTfrmMain.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
.