Einzelnen Beitrag anzeigen

Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#15

Re: Benötige Hilfe beim erstellen einer Access Datenbank

  Alt 18. Sep 2008, 17:58
Hallo

Wie oben geschrieben, habe ich auch mal was ähliches gemacht.
Läuft im Netzwerk ohne Probleme.

Zugegriffen wird auf eine Access DB via OLE (DAO.DBEngine.36)

Anbei einige Funktionen aus (z.T vereinfacht und geändert) aus meinem Programm.

Delphi-Quellcode:
const
  DAOMSJet = 'DAO.DBEngine.36'; // 'DAO.DBEngine'

function GetDBName: string;
begin
  Result := ExtractFilePath(Paramstr(0)) + 'MyDB.mdb';
end;
Delphi-Quellcode:
function TfrmX.OpenDB: Boolean;
begin
  Result := False;
  if FileExists(GetDBName) then
  begin
    FDao := CreateOleObject(DAOMSJet);
    try
      Fdbs := FDao.OpenDatabase(GetDBName);
      Result := True;
    except
      FDao := Unassigned;
    end;
  end;
end;
Delphi-Quellcode:
procedure TfrmX.CloseDB;
begin
  if not VarIsNull(FDbs) then
  begin
    Fdbs.Close;
    Fdbs := Unassigned;
  end;
end;

Delphi-Quellcode:
function PrepareSQL: string;
begin
  Result := 'SELECT * FROM MyTable';
end;
Delphi-Quellcode:
function TfrmX.GetUsers: string;
var
  rds: variant;
  ss, SLQString: string;
 begin
  SLQString := PrepareSQL();
  rds := Fdbs.OpenRecordset(SLQString);
  try
    while (not rds.EOF) do
    begin
      // ..
      rds.MoveNext;
    end;
  finally
    rds.Close;
    rds := Unassigned;
  end;
end;

Delphi-Quellcode:
procedure TfrmX.SaveDataToDB;
const
  dbOpenTable = 1;
var
  rds: variant;
begin
  if OpenDB then
  begin
    Rds := Fdbs.OpenRecordSet('MyTable', dbOpenTable);
    try
      Rds.AddNew;
      rds.fields['Date'].Value := FormatDateTime('dd.mm.yyyy hh:nn:ss', dtNow);
      rds.fields['XYZ'].Value := ...
      rds.Update;
    finally
      rds := Unassigned;
    end;
    CloseDB;
  end;
end;
Thomas
  Mit Zitat antworten Zitat