AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Daten von Datenbank in eine Tabelle füllen
Thema durchsuchen
Ansicht
Themen-Optionen

Daten von Datenbank in eine Tabelle füllen

Ein Thema von Martin W · begonnen am 20. Feb 2005 · letzter Beitrag vom 21. Feb 2005
Antwort Antwort
Martin W

Registriert seit: 29. Mai 2004
Ort: Augsburg
220 Beiträge
 
Delphi XE3 Enterprise
 
#1

Daten von Datenbank in eine Tabelle füllen

  Alt 20. Feb 2005, 15:00
Datenbank: mysql • Version: neuste • Zugriff über: direkt
Also folgendes... ich hab das Tutorial von Luckie mal durchgemacht und mir die Beispielanwendung, das Adressbuch, mal "vorgenommen". Siehe hier (tutoriallink)


Hab auf das Formular noch ne TListView draufgesetzt. Diese soll genau so gefüllt werden wie das TStringGrid welches schon drauf war. Also hab ich diese prozedur (FillGrid) leicht modifiziert:

Delphi-Quellcode:
procedure tform1.FillGrid(SG: TStringGrid; Cols: TCols; Rows: TRows);
var
  i, j : Integer;
  NewItem: TlistItem;
  clmen: TListColumn;
  k : integer;
begin
  ListView1.Clear;
  SG.ColCount := 0;
  SG.RowCount := 0;
  if Assigned(Rows) then
  begin
    SG.RowCount := length(Rows[0]) + 1;
    SG.ColCount := length(Cols);
    SG.FixedRows := 0;
    for i := 0 to length(Cols) - 1 do
    begin
      SG.Cols[i].Add(Cols[i]);
      SG.Cells[i, 0] := Cols[i];
    end;
    for i := 0 to length(Cols) - 1 do
    begin
      for j := 0 to length(Rows[0]) - 1 do
      begin
        SG.Cells[i, j + 1] := Rows[i, j];
      end;
    end;
  end;
  if Assigned(Rows) then
    begin
    for i := 0 to length(Cols) - 1 do
    begin
      clmen := ListView1.Columns.Add;
      clmen.Caption := Cols[i];
    end;
    for k := 0 to length(rows[0]) + 1 do
      begin
          NewItem := ListView1.Items.Add;
          NewItem.Caption := '';
          for i := 0 to length(rows) + 1 do
            NewItem.SubItems.Add('');
          end;
      end;
    for i := -1 to length(Cols) - 1 do
    begin
      for j := 0 to length(Rows[0]) - 1 do
      begin
        ListView1.Items[j].SubItems[i] := Rows[i, j];
      end;
    end;
end;
Aber irgendwie funktioniert das nicht richtig... Momentan kommt dann immer ne Fehlermeldung "Zugriffsverletzung..."


Gruß
Martin W
  Mit Zitat antworten Zitat
Quake

Registriert seit: 25. Aug 2003
222 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Daten von Datenbank in eine Tabelle füllen

  Alt 21. Feb 2005, 13:18
NewItem.Create irgendwo einbauen.
  Mit Zitat antworten Zitat
Martin W

Registriert seit: 29. Mai 2004
Ort: Augsburg
220 Beiträge
 
Delphi XE3 Enterprise
 
#3

Re: Daten von Datenbank in eine Tabelle füllen

  Alt 21. Feb 2005, 13:30
Delphi-Quellcode:
var
  i, j : Integer;
  NewItem: TlistItem;
  clmen: TListColumn;
  k : integer;
begin
  ListView1.Clear;
  SG.ColCount := 0;
  SG.RowCount := 0;
  if Assigned(Rows) then
  begin
    SG.RowCount := length(Rows[0]) + 1;
    SG.ColCount := length(Cols);
    SG.FixedRows := 0;
    listview1.Columns.Clear;
    Listview1.Clear;
    for i := 0 to length(Cols) - 1 do
    begin
      SG.Cols[i].Add(Cols[i]);
      SG.Cells[i, 0] := Cols[i];
    end;
    for i := 0 to length(Cols) - 1 do
    begin
      for j := 0 to length(Rows[0]) - 1 do
      begin
        SG.Cells[i, j + 1] := Rows[i, j];
      end;
    end;
  end;
 if Assigned(Rows) then
    begin
    for i := 0 to length(Cols) - 1 do
    begin
      clmen := ListView1.Columns.Add;
      clmen.Caption := Cols[i];
    end;
    for k := 0 to length(rows[0]) + 1 do
      begin
          NewItem := ListView1.Items.Add;
          NewItem.Caption := '';
          for i := 0 to length(rows) + 1 do
            NewItem.SubItems.Add('');
          end;
      end;
    k := -2; /// Ab hier verändert ///
    for i := 0 to length(Cols) - 1 do
    begin
      inc(k);
      for j := 0 to length(Rows[0]) - 1 do
      begin
        if k = -1 then
          begin
            ListView1.Items[j].Caption := Rows[i, j];
          end
        else
          begin
            ListView1.Items[j].SubItems[k] := Rows[i, j];
          end;
      end;
    end;
end;
Wen es interessiert, hier ist es richtig, hab den Fehler gerfunden.
  Mit Zitat antworten Zitat
Quake

Registriert seit: 25. Aug 2003
222 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Daten von Datenbank in eine Tabelle füllen

  Alt 21. Feb 2005, 14:30
Sorry, mein Kommentar war etwas falsch, NewItem := ListView1.Items.Add erstellt ja das Object. Sorry
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Daten von Datenbank in eine Tabelle füllen

  Alt 21. Feb 2005, 14:35
Äh, was soll denn das:
Delphi-Quellcode:
SG.RowCount := length(Rows[0]) + 1;
SG.ColCount := length(Cols);
SG.FixedRows := 0;
listview1.Columns.Clear;
Listview1.Clear;
Entwerder Striggrid oder Listview. Und was wenn mein Listview lstData heißt? dann kann ich in dem Code alle Stellen ändern wo du den Listview hardgecodet hast. Nicht sehr schön.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Martin W

Registriert seit: 29. Mai 2004
Ort: Augsburg
220 Beiträge
 
Delphi XE3 Enterprise
 
#6

Re: Daten von Datenbank in eine Tabelle füllen

  Alt 21. Feb 2005, 15:22
Zitat von Luckie:
Äh, was soll denn das:
Delphi-Quellcode:
SG.RowCount := length(Rows[0]) + 1;
SG.ColCount := length(Cols);
SG.FixedRows := 0;
listview1.Columns.Clear;
Listview1.Clear;
Entwerder Striggrid oder Listview. Und was wenn mein Listview lstData heißt? dann kann ich in dem Code alle Stellen ändern wo du den Listview hardgecodet hast. Nicht sehr schön.
Zum hardcoden... wie sollte ich es sonst machen ?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Daten von Datenbank in eine Tabelle füllen

  Alt 21. Feb 2005, 15:39
Du hast doch den Code vor dir. Wie habe ich es denn mit dem StringGrid gemacht?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Martin W

Registriert seit: 29. Mai 2004
Ort: Augsburg
220 Beiträge
 
Delphi XE3 Enterprise
 
#8

Re: Daten von Datenbank in eine Tabelle füllen

  Alt 21. Feb 2005, 15:44
Jo... als Variable der Prozedur übergeben... aber das war ja nur zum Üben =) Wichtiger ist mir die Frage im anderen Thread
  Mit Zitat antworten Zitat
Antwort Antwort


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 10:55 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