- Delphiartiklar, tips, forum, länksamling - 

      

START | DELPHI | LÄNKARGÄSTBOK 




 Forum

Grundkurs
  »Introduktion
  »Snabbguide
  »Komponenter
  »Händelser
  »Strängar
  »Räkna med Delphi   »Egna typer
  »Selektion
  »Iteration
  »Menyer
  »Funktioner
  »Arraystrukturer

Tips & Tricks
  »Nya tips
  »Blandat
  »Databaser
  »Filer
  »Forms
  »Grafik
  »Internet
  »Komponenter
  »Matematik
  »Multimedia
  »Objekt/ActiveX
  »Skrivare
  »Strängar
  »System
  »Mest lästa tips

Artiklar
  »Delphi och ADO
  »Bygga en DLL
  »Skapa en enkel rapport
  »Hantera registret
  »Enheter, units
  »Klassen TCanvas
  »Använd LookUp Controls

 Nya tips
 Lägg till tips
 Delphilänkar
 Gästbok

 

Läs från en Accessdatabas Kategori: Databaser
Inlagt: 2002-08-12
Läst: 2086
Inlagt av: Staffan Berg
Beskrivning
Med denna kod kan du läsa ur vilken version av Accessdatabas som helst. 
Kod
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
ifFileExists(ExtractFileDir(Application.ExeName) + '\' + DBNAME) then
  lDBPathName := ExtractFileDir(Application.ExeName) + '\' + DBNAME
 elseifOpenDialog1.Execute then
  // Set the OpenDialog FilterforADOdemo.mdb only
  lDBPathName := OpenDialog1.FileName;

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

iflDBCheck = 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;

// Checkifit 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);
fori := 1 to High(Buffer) do
  MyString := MyString + Trim(Chr(Ord(Buffer[i])));
 Result := False;
ifMystring = 'StandardJetDB' then
  Result := True;
ifResult = False then
  MessageDlg('Invalid Access Database', mtInformation, [mbOK], 0);
end;

end.


 
 
© Copyright 2005 - Staffan Berg
- Alla rättigheter förbehålles -