![]() |
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 |
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
|
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 :) .
|
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:
Tabelle öffnen
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;
Code:
Tabelle in Liste einlesen (hier werden beispielhaft die Namen der in Access gespeicherten Abfragen in eine Liste eingelesen)
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;
Code:
Jetzt kann man sich eine allgemeine FileOpen Routine schreiben, die als Parameter eine *.mdb erwartet (incl. Pfad):
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;
Code:
Pass vielleicht nicht 100%ig auf Deinen Fall, hilft Dir aber hoffentlich etwas weiter.
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; gruß, harrybo |
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] |
Na das freut mich doch! gruß, harrybo
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:53 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 by Thomas Breitkreuz