AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Mit ADO Tabelle aus Access abfragen?
Thema durchsuchen
Ansicht
Themen-Optionen

Mit ADO Tabelle aus Access abfragen?

Ein Thema von Jack23 · begonnen am 25. Sep 2007 · letzter Beitrag vom 26. Sep 2007
 
Jack23

Registriert seit: 20. Sep 2007
215 Beiträge
 
#13

Re: Mit ADO Tabelle aus Access abfragen?

  Alt 25. Sep 2007, 20:14
Ok. Also Hauptdatei:

Delphi-Quellcode:
unit TForm1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DatenmodulUnit, Menus, StdCtrls, Registry, Grids, DBGrids, DB, ADODB,
  Mask, DBCtrls;

type
  TForm2 = class(TForm)
    MainMenu1: TMainMenu;
    Datei1: TMenuItem;
    DBffnen1: TMenuItem;
    DBSchlieen1: TMenuItem;
    DBKonfiguration1: TMenuItem;
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    procedure OpenDatabaseClick(Sender: TObject);
    procedure CloseDatabaseClick(Sender: TObject);
    procedure DatenbankKonfiguration1Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure DataSource1DataChange(Sender: TObject; Field: TField);
    private
    { Private-Deklarationen }
    function WriteDSNToRegistry(DSN: string): Boolean;
  function ReadDSNFromRegistry(var DSN: string): Boolean;
  public
    { Public-Deklarationen }
      end;

var
  Form2: TForm2;

implementation
   procedure TForm2.OpenDatabaseClick(Sender: TObject);
begin
  if DataModule2.OpenDatabase=true then
    MessageDlg('Die Datenbank konnte erfolgreich geöffnet werden',
    mtInformation, [mbOK], 0)
  else
    MessageDlg('Die Datenbank konnte nicht geöffnet werden',
    mtError, [mbOK], 0);
end;

{$R *.dfm}

procedure TForm2.CloseDatabaseClick(Sender: TObject);
begin
  if DataModule2.CloseDatabase=true then
    MessageDlg('Die Datenbank konnte erfolgreich geschlossen werden',
    mtInformation, [mbOK], 0)
  else
    MessageDlg('Die Datenbank konnte nicht geschlossen werden',
    mtError, [mbOK], 0);
end;


function TForm2.WriteDSNToRegistry(DSN: String): Boolean;
var Registry: TRegistry;
begin
  WriteDSNToRegistry:=true;
  Registry:=TRegistry.Create;
  Registry.RootKey:=HKEY_LOCAL_MACHINE;
  {Der Registry-Pfad für Ihren Eintrag}
  if Registry.KeyExists('\Software\MeinProg\MeineAnw')=false then
    try
      Registry.CreateKey('\Software\MeinProg\MeineAnw');
    except
      Registry.Free;
      WriteDSNToRegistry:=false;
      Exit;
    end;
    try
      if Registry.OpenKey('\Software\MeinProg\MeineAnw',
      true)=true then
        Registry.WriteString('DSN', DSN)
      else begin
        MessageDlg('Es konnte nicht in die Registry geschrieben '+
       'werden', mtError, [mbOK], 0);
        WriteDSNToRegistry:=false;
      end;
    finally
      Registry.CloseKey;
      Registry.Free;
    end;
end;

function TForm2.ReadDSNFromRegistry(var DSN: String): Boolean;
var Registry: TRegistry;
begin
  ReadDSNFromRegistry:=true;
  Registry:=TRegistry.Create;
  try
    Registry.RootKey:=HKEY_LOCAL_MACHINE;
    if Registry.KeyExists('\Software\MeinProg\MeineAnw')=true then begin
      if Registry.OpenKey('\Software\MeinProg\MeineAnw', true)=true then
        DSN:=Registry.ReadString('DSN')
      else
        ReadDSNFromRegistry:=false;
    end
    else
      ReadDSNFromRegistry:=false;
  finally
    Registry.Free;
  end;
end;
procedure TForm2.DataSource1DataChange(Sender: TObject; Field: TField);
begin

end;

procedure TForm2.DatenbankKonfiguration1Click(Sender: TObject);
var DSN: string;
begin
  if DataModule2.EditMeineAnwendungDSN(DSN)=true then begin
    MessageDlg('Der DSN konnte erfolgreich geändert werden',
    mtInformation, [mbOK], 0);
   WriteDSNToRegistry(DSN);
  end
  else
    MessageDlg('Der DSN konnte nicht geändert werden',
    mtError, [mbOK], 0);
end;
procedure TForm2.FormShow(Sender: TObject);
var DSN: string;
begin
  if ReadDSNFromRegistry(DSN)=true then begin
    if DataModule2.SetMeineAnwendungDSN(DSN)=true then
      if DataModule2.OpenDatabase=false then begin
        MessageDlg('Es konnte keine Verbindung zur Datenbank '+
        'aufgebaut werden.', mtError, [mbOK], 0);
        DatenbankKonfiguration1Click(Sender);
      end;
  end
  else if DataModule2.OpenDatabase=false then begin
    MessageDlg('Es konnte keine Verbindung zur Datenbank '+
    'aufgebaut werden.', mtError, [mbOK], 0);
    DatenbankKonfiguration1Click(Sender);
  end
  else begin
    MessageDlg('Es konnte keine DSN ausgelesen werden.',
    mtError, [mbOK], 0);
    DatenbankKonfiguration1Click(Sender);
  end;
end;

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  WriteDSNToRegistry(DataModule2.GetMeineAnwendungDSN);
  DataModule2.CloseDatabase;
end;



INITIALIZATION


end.


Datenmodul:

Delphi-Quellcode:
unit DatenmodulUnit;

interface

uses
  SysUtils, Classes, DB, ADODB, ADOConED;

type
  TDataModule2 = class(TDataModule)
    ADOConnection1: TADOConnection;
    ADOTable1: TADOTable;
    
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
   function OpenDatabase: Boolean;
  function CloseDatabase: Boolean;
  function EditMeineAnwendungDSN(var DSN: string): Boolean;
  function GetMeineAnwendungDSN: string;
  function SetMeineAnwendungDSN(DSN: string): Boolean;
  end;

var
  DataModule2: TDataModule2;

implementation

function TDataModule2.OpenDatabase: Boolean;

begin
  OpenDatabase:=true;
  try
    ADOConnection1.Open;
  except
    OpenDatabase:=false;
  end;
end;

function TDataModule2.CloseDatabase: Boolean;
begin
  CloseDatabase:=true;
  try
    ADOConnection1.Close;
  except
    CloseDatabase:=false;
  end;
end;
  function TDataModule2.EditMeineAnwendungDSN(var DSN: string): Boolean;
begin
  EditMeineAnwendungDSN:=true;
  if ADOConnection1.Connected=true then
    if CloseDatabase=false then begin
      EditMeineAnwendungDSN:=false;
      exit;
    end;
  if EditConnectionString(ADOConnection1)=true then
    DSN:=ADOConnection1.ConnectionString
  else
    EditMeineAnwendungDSN:=false;
end;

function TDataModule2.GetMeineAnwendungDSN: string;
begin
  GetMeineAnwendungDSN:=ADOConnection1.ConnectionString;
end;

function TDataModule2.SetMeineAnwendungDSN(DSN: string): Boolean;
begin
  SetMeineAnwendungDSN:=true;
  if ADOConnection1.Connected=true then
    if CloseDatabase=false then begin
      SetMeineAnwendungDSN:=false;
      Exit;
    end;
  ADOConnection1.ConnectionString:=DSN;
  end;

{$R *.dfm}

end.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz