Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Daten aus AccessDB auslesen und in TListView anzeigen (https://www.delphipraxis.net/1447-daten-aus-accessdb-auslesen-und-tlistview-anzeigen.html)

phlux 27. Nov 2002 21:01


Daten aus AccessDB auslesen und in TListView anzeigen
 
Hallöchen!
Ich habe da eine Access-Datenbank (*.mdb) und möchte die mit ADO auslesen (nutze dafür D6 Prof.). Das ganze wollte ich mit SQL realisieren und die Ergebnisse in einer Listview (klingt komisch, muss aber sein) ausgeben. Wie stelle ich das an?

MfG phlux

harrybo 4. Dez 2002 13:17

wie weit bist Du denn, phlux? Hast Du die DB bereits connected, einen aktiven Dataset? Bitte gebe doch kurz bescheid, an welcher Stelle wir helfend einsteigen können. Gruß, harrybo

phlux 4. Dez 2002 14:20

Also im Moment sieht es so aus, dass das komplette Programm bereits fertig ist, da ich das vorher mal mit DAO ausprobiert habe, ich möchte jetzt eigentlich nur wissen wie ich via sourcecode zur .mdb Datei connecte und das Ergebnis einer SQL Abfrage so auswerten kann, dass die Ergebnisse in einer ListView angezeigt werden :) .

harrybo 4. Dez 2002 19:58

Hi phlux,

ist zwar schon eine Weile her, dass ich mit ADO entwickelt habe, aber so oder ähnlich sollte es wohl heute auch noch gehen:

Zunächst connecten bzw. disconnecten(ggfs OLEDB Version anpassen)
Code:
function TDM1.mth_Connect (Filename : string) : boolean;
begin
  try
    queTable.Close;
    conMain.Connected := false;
    conMain.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.3.51;'+
                                'Data Source=' + Filename;
    conMain.Connected := true;
    result := true;
  except
    showmessage ('Problem bei der Auswahl der Datenbank');
    result := false
  end;
end;

procedure TDM1.mth_DisConnect;
begin
  try
    queTable.Close;
    queSchema.Close;
    conMain.Connected := false;
  except
    showmessage ('Problem beim Schließen der Datenbank');
  end;
end;
Tabelle öffnen
Code:
function TDM1.mth_OpenTable(tblStr: string): boolean;
begin
  try
    with queTable do begin
      if Active then Close;
      FilterCriterion.AsString := '';
      Filtered := false;
      CommandText := tblStr;
      Open;
    end;
    queTable.GetFieldNames(FieldList);
  except
  end;
end;
Tabelle in Liste einlesen (hier werden beispielhaft die Namen der in Access gespeicherten Abfragen in eine Liste eingelesen)
Code:
function TDM1.mth_SetQueryList : boolean;
var
  i : integer;
begin
  QueryList.Clear;
  with queSchema do begin
    Close;
    InfoType := adSchemaViews;
    Filtered := false;
    Open;
    First;
    while not EOF do begin
      if queSchema['TABLE_NAME'] <> '' then
        QueryList.Add(queSchema['TABLE_NAME']);
      Next
    end;
  end;
  result := (QueryList.Count > 0);
end;
Jetzt kann man sich eine allgemeine FileOpen Routine schreiben, die als Parameter eine *.mdb erwartet (incl. Pfad):
Code:
procedure TfrmMain.mth_FileOpen(FileName : string);
begin
  if DM1.mth_Connect(FileName) then begin
    if DM1.mth_SetQueryList then
      // mach sonst noch was
    else
      showmessage('Tabelle konnte nicht eingelesen werden');
  end else
    showmessage('Datenbank konnte nicht geöffnet werden');
end;
Pass vielleicht nicht 100%ig auf Deinen Fall, hilft Dir aber hoffentlich etwas weiter.
gruß, harrybo

phlux 6. Dez 2002 14:02

Hi Harry!
Danke erst einmal für deine ausführliche Hilfe, die einzigen Fragen die ich jetzt noch habe, sind:
a) Welche Komponenten hast du für das Stück code benutzt?
b) Wie kann ich jetzt noch SQL Befehle ausführen lassen?
Trotzdem danke schonmal für deine ausführliche Hilfe.

[edit]Okay die Probleme haben sich gelöst :)[/edit]

harrybo 7. Dez 2002 12:34

Na das freut mich doch! gruß, harrybo


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:19 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz