![]() |
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:
Danke im Voraus
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; Rene |
Re: Daten in StringGrid einlesen und in DB abspeichern
Hi,
ich würde erstmal meinen das deine sSQL nicht ganz richtig ist:
SQL-Code:
oder
sSQL := 'SELECT VertragNr, KundenNr, Bezeichnung FROM Vertrag where AbrechPartner =' + DBLookupComboBox1.KeyValue;
SQL-Code:
und dann den parameter erstzen:
sSQL := 'SELECT VertragNr, KundenNr, Bezeichnung FROM Vertrag where AbrechPartner =:a';
Delphi-Quellcode:
Vielleicht hilft es.
Query.Params.ParamByName('a').Value:=DBLookupComboBox1.KeyValue;
Plautzer |
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 |
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 + ';
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: |
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 |
Re: Daten in StringGrid einlesen und in DB abspeichern
hmm, sollte das hier:
Delphi-Quellcode:
nicht eher so sein? :
stringgrid1.Cells[1,0] := 'Vertrag:';
stringgrid1.Cells[2,0] := 'KundenNr:'; stringgrid1.Cells[3,0] := 'Vertrag:';
Delphi-Quellcode:
cu
stringgrid1.Cells[0,1] := 'Vertrag:';
stringgrid1.Cells[0,2] := 'KundenNr:'; stringgrid1.Cells[0,3] := 'Vertrag:'; ereetzer |
Re: Daten in StringGrid einlesen und in DB abspeichern
Liste der Anhänge anzeigen (Anzahl: 1)
Mein Quellcode lauted:
SQL-Code:
und was dabei rauskommt, siehst du auf der Abbildung.
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. Mir wäre aber schon geholfen, wenn mir jemand sagen kann, wie ich die DBGrid in eine Tabelle speichern kann. |
Re: Daten in StringGrid einlesen und in DB abspeichern
So läßt sich ein Stringgrid aus der Datenbank füllen :
Delphi-Quellcode:
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.
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; |
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 |
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.
|
Re: Daten in StringGrid einlesen und in DB abspeichern
Hallo Hansa!
Ich möchte die Daten in die StringGrid einlesen, als Abrechnung ausdrucken, und dann in eine DB mit dem aktuellen Datum eintragen. Danke |
Re: Daten in StringGrid einlesen und in DB abspeichern
hallo rene!
und was wäre wenn... du deine abrechenbaren datensätze, die du mit der query ermittelst, gleich in eine 'rechnungen-tabelle' einträgst und dort das datum aktualisierst? wieso gehst du den umweg über ein stringgrid? zum erstellen eines reportes verwende ich zusätzlich das boolsche feld 'gedruckt'. vor dem rechnungsdruck frage ich alle einträge ab, die noch nicht gedruckt wurden und stelle das feld, sobald man nach dem drucken die frage nach dem 'ordnungsgemässen ausdruck' mit OK beantwortet, auf true. (es kann ja mal vorkommen, dass sich das papier verknittert oder kein papier mit firmenkopf im drucker liegt - somit bekommt man eine zweite chance :) ) mfg, stefan |
Re: Daten in StringGrid einlesen und in DB abspeichern
Hallo Grayfox!
Danke für die Idee, so werde ich das mal probieren. Trotzdem würde es mich interessieren, wie das fubktioniert. Habe nähmlich erst zu programieren angefangen, und möchte soviel wie möglich dazulernen. Danke Rene |
Re: Daten in StringGrid einlesen und in DB abspeichern
wenn du dich für stringgrids interessiert, dann ist es am einfachsten, du ziehst eins auf dein formular , klickst auf F1 und siehst dir seine eigenschaften und methoden an.
bei cells findest du zu folgendes Zitat:
mfg, stefan |
Re: Daten in StringGrid einlesen und in DB abspeichern
Hallo Grayfox!
Danke für die Auskunft, wieder einiges dazugelernt. Ciao (bis zum nächsten mal) Rene |
Re: Daten in StringGrid einlesen und in DB abspeichern
bitte, bitte! dafür sind die älteren forumerianer doch da.
gruss, stefan ps: ein positives feedback tut auch mal gut ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:48 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-2025 by Thomas Breitkreuz