AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Daten in StringGrid einlesen und in DB abspeichern
Thema durchsuchen
Ansicht
Themen-Optionen

Daten in StringGrid einlesen und in DB abspeichern

Ein Thema von muenchner · begonnen am 3. Sep 2004 · letzter Beitrag vom 4. Sep 2004
Antwort Antwort
Seite 1 von 2  1 2      
muenchner

Registriert seit: 19. Aug 2004
25 Beiträge
 
#1

Daten in StringGrid einlesen und in DB abspeichern

  Alt 3. Sep 2004, 21:12
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
  Mit Zitat antworten Zitat
plautzer

Registriert seit: 23. Aug 2003
172 Beiträge
 
#2

Re: Daten in StringGrid einlesen und in DB abspeichern

  Alt 3. Sep 2004, 22:57
Hi,

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

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

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

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

Plautzer
  Mit Zitat antworten Zitat
muenchner

Registriert seit: 19. Aug 2004
25 Beiträge
 
#3

Re: Daten in StringGrid einlesen und in DB abspeichern

  Alt 3. Sep 2004, 23:11
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
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#4

Re: Daten in StringGrid einlesen und in DB abspeichern

  Alt 3. Sep 2004, 23:41
Das ganze sieht etwas nach Konfuzius aus.

Z.B. hier :

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 ?
Gruß
Hansa
  Mit Zitat antworten Zitat
muenchner

Registriert seit: 19. Aug 2004
25 Beiträge
 
#5

Re: Daten in StringGrid einlesen und in DB abspeichern

  Alt 4. Sep 2004, 09:25
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
  Mit Zitat antworten Zitat
ereetzer

Registriert seit: 21. Mär 2003
86 Beiträge
 
Delphi XE Starter
 
#6

Re: Daten in StringGrid einlesen und in DB abspeichern

  Alt 4. Sep 2004, 09:31
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
  Mit Zitat antworten Zitat
muenchner

Registriert seit: 19. Aug 2004
25 Beiträge
 
#7

Re: Daten in StringGrid einlesen und in DB abspeichern

  Alt 4. Sep 2004, 11:02
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.
Miniaturansicht angehängter Grafiken
abrech.jpg  
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#8

Re: Daten in StringGrid einlesen und in DB abspeichern

  Alt 4. Sep 2004, 12:02
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. Die Summe am Schluß würde ich vorerst mal außer Acht lassen.
Gruß
Hansa
  Mit Zitat antworten Zitat
muenchner

Registriert seit: 19. Aug 2004
25 Beiträge
 
#9

Re: Daten in StringGrid einlesen und in DB abspeichern

  Alt 4. Sep 2004, 12:22
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
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#10

Re: Daten in StringGrid einlesen und in DB abspeichern

  Alt 4. Sep 2004, 12:42
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.
Gruß
Hansa
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 20:14 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