Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Daten in StringGrid einlesen und in DB abspeichern (https://www.delphipraxis.net/29096-daten-stringgrid-einlesen-und-db-abspeichern.html)

muenchner 3. Sep 2004 21:12


Daten in StringGrid einlesen und in DB abspeichern
 
Hallo ich bins schon wieder!

Vielleicht kann mir jemand sagen, was ich bei diesem code verkehrt habe, dass 5x hintereinander nur die 1. Zeile geschrieben wird.
Auuserdem bräuchte ich noch Hilfe, um die StringGrid in eine Tabelle abzuspeichern.

Ich möchte die Daten von einer Tabelle auslesen, in die StringGrid eintragen und anschliesend in eine andere DB abspeichern.

Vielleicht kann mir jemand helfen.

SQL-Code:
var
sSQL, s1SQL: String;
 i: Integer;
begin

try
Query1.Close;
Query1.SQL.Clear;
sSQL := 'SELECT VertragNr, KundenNr, Bezeichnung FROM Vertrag where AbrechPartner = "' + DBLookupComboBox1.KeyValue + ';

Query1.sql.add(sSQL);
Query1.Active:=True;

except
end;
stringgrid1.Cells[0,0] := 'id';
i := 1;
try
        stringgrid1.Cells[1,0] := 'Vertrag:';
        stringgrid1.Cells[2,0] := 'KundenNr:';
        stringgrid1.Cells[3,0] := 'Vertrag:';
        while not query1.Eof do begin
       
        stringgrid1.Cells[3,i] := tblVertrag1.FieldByName('KundenNr').AsString;
        stringgrid1.Cells[2,i] := tblVertrag1.FieldByName('VertragNr').AsString;
        query1.Next;
    i := i+1;
    end;
Danke im Voraus

Rene

plautzer 3. Sep 2004 22:57

Re: Daten in StringGrid einlesen und in DB abspeichern
 
Hi,

ich würde erstmal meinen das deine sSQL nicht ganz richtig ist:

SQL-Code:
sSQL := 'SELECT VertragNr, KundenNr, Bezeichnung FROM Vertrag where AbrechPartner =' + DBLookupComboBox1.KeyValue;
oder

SQL-Code:
sSQL := 'SELECT VertragNr, KundenNr, Bezeichnung FROM Vertrag where AbrechPartner =:a';
und dann den parameter erstzen:

Delphi-Quellcode:
Query.Params.ParamByName('a').Value:=DBLookupComboBox1.KeyValue;
Vielleicht hilft es.

Plautzer

muenchner 3. Sep 2004 23:11

Re: Daten in StringGrid einlesen und in DB abspeichern
 
Hallo Plautzer!

Wenn ich die SQL auf eine DBGrid anwende, funktioniert es.

Es listet mir genau das auf, was ich möchte. Kann es sein, dass es bei StrinGrid anders ist?

Gruß Rene

Hansa 3. Sep 2004 23:41

Re: Daten in StringGrid einlesen und in DB abspeichern
 
Das ganze sieht etwas nach Konfuzius aus. :mrgreen:

Z.B. hier :

Delphi-Quellcode:
sSQL := 'SELECT VertragNr, KundenNr, Bezeichnung FROM Vertrag where AbrechPartner = "' + DBLookupComboBox1.KeyValue + ';
  • Anführungszeichen leiten etwas ein und müssen auch abgeschlossen werden. Davon sehe ich nichts.
  • In den (noch relativ wenigen) geposteten Source-Zeilen tauchen bereits zwei Exception Blöcke auf, von denen einer IMHO nicht mal richtig abgeschlossen ist. 8) Sie Exception Behandlung dient aber nur dazu, wie der Name schon sagt, wirklich kapitale Fehler abzufangen.
  • Das Wort EOF taucht nirgends auf.
  • da Delphi-Tags verwendet wurden, nehme ich an, daß der Originalquelltext ähnlich aussieht, also ziemlich chaotisch. 8)

Bevor der Source nicht einigermaßen verständlich und logisch aufgebaut ist, kommst du wohl nicht sehr weit. Früher vielleicht mal C gemacht ? :lol:

muenchner 4. Sep 2004 09:25

Re: Daten in StringGrid einlesen und in DB abspeichern
 
Hallo Hansa!

Habe vor ca 20 Jahren Dbsase gemacht, seitdem nichts mehr. Also totaler Anfänger.

Aber vielleicht kannst Du mir trotzdem ein paar Tips geben.

Danke

ereetzer 4. Sep 2004 09:31

Re: Daten in StringGrid einlesen und in DB abspeichern
 
hmm, sollte das hier:

Delphi-Quellcode:
        stringgrid1.Cells[1,0] := 'Vertrag:';
        stringgrid1.Cells[2,0] := 'KundenNr:';
        stringgrid1.Cells[3,0] := 'Vertrag:';
nicht eher so sein? :

Delphi-Quellcode:
        stringgrid1.Cells[0,1] := 'Vertrag:';
        stringgrid1.Cells[0,2] := 'KundenNr:';
        stringgrid1.Cells[0,3] := 'Vertrag:';
cu
ereetzer

muenchner 4. Sep 2004 11:02

Re: Daten in StringGrid einlesen und in DB abspeichern
 
Liste der Anhänge anzeigen (Anzahl: 1)
Mein Quellcode lauted:

SQL-Code:
procedure TForm8.DBLookupComboBox1CloseUp(Sender: TObject);
var
sSQL, s1sql: String;
 i: Integer;
begin
  i :=1;
Query1.Close;
Query1.SQL.Clear;

sSQL := 'SELECT VertragNr, KundenNr FROM Vertrag where AbrechPartner = "' + DBLookupComboBox1.KeyValue +'"';

       stringgrid1.Cells[1,0] := 'VertragNr:';
       stringgrid1.Cells[2,0] := 'KundenNr:';

Query1.sql.add(sSQL);
Query1.Active:=True;
    while not query1.Eof do begin
        stringgrid1.Cells[2,i] := tblVertrag1.FieldByName('KundenNr').AsString;
        stringgrid1.Cells[1,i] := tblVertrag1.FieldByName('VertragNr').AsString;
        i := i+1;
  query1.Next;

Query2.Close;
Query2.SQL.Clear;
s1SQL := 'SELECT Sum(Zeichensumme) As Summe FROM Vertrag where AbrechPartner ="' + DBLookupComboBox1.KeyValue +'"';

Query2.sql.add(s1SQL);
Query2.Active:=True;
Edit1.Text := (Query2.FieldValues['Summe'])

end;
end;

end.
und was dabei rauskommt, siehst du auf der Abbildung.

Mir wäre aber schon geholfen, wenn mir jemand sagen kann, wie ich die DBGrid in eine Tabelle speichern kann.

Hansa 4. Sep 2004 12:02

Re: Daten in StringGrid einlesen und in DB abspeichern
 
So läßt sich ein Stringgrid aus der Datenbank füllen :


Delphi-Quellcode:
procedure TForm8.DBLookupComboBox1CloseUp(Sender: TObject);
var
 s1sql: String;
 i: Integer;
begin
  i :=1;
  Dataset1.Close;
  Dataset1.SelectSQL.Text := 'SELECT VertragNr, KundenNr FROM Vertrag where AbrechPartner = "' + DBLookupComboBox1.KeyValue +'"';
  Dataset1.Open;   // Datenmenge steht nun bereit

  stringgrid1.Cells[1,0] := 'VertragNr:';
  stringgrid1.Cells[2,0] := 'KundenNr:';

  while not Dataset1.Eof do begin
    stringgrid1.Cells[1,i] := Dataset1.FieldByName ;('VertragNr').AsString;
    stringgrid1.Cells[2,i] := Dataset1.FieldByName('KundenNr').AsString;
        i := i+1;
    Dataset1.Next;
  END;
end;
Das unnötige habe ich rausgeschmissen und den Source aufgeräumt. :lol: Die Summe am Schluß würde ich vorerst mal außer Acht lassen.

muenchner 4. Sep 2004 12:22

Re: Daten in StringGrid einlesen und in DB abspeichern
 
Hallo Hansa!

Habe es probiert, funktioniert SUPER, wenn Du mir noch sagen könntest, wie ich das in eine DB speichern kann, wäre ich Dir übeaus dankbar.

Rene

Hansa 4. Sep 2004 12:42

Re: Daten in StringGrid einlesen und in DB abspeichern
 
Sehe ich das richtig : du willst Daten erst einmal in das Stringgrid lesen, sie dann ändern und dann zurückschreiben ? Leider muß ich aber sofort weg.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:15 Uhr.
Seite 1 von 2  1 2      

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