AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Liste in ein DBGrid schreiben

Liste in ein DBGrid schreiben

Ein Thema von andy21 · begonnen am 9. Jan 2008 · letzter Beitrag vom 13. Jan 2008
Antwort Antwort
Seite 3 von 4     123 4   
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.616 Beiträge
 
Delphi 12 Athens
 
#21

Re: Liste in ein DBGrid schreiben

  Alt 9. Jan 2008, 21:06
Das war mir klar, vielleicht hab ich mich auch blöde ausgedrückt, ich meinte den vollständigen Code zum Anlegen und Befüllen des neuen Datensatzes.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
andy21

Registriert seit: 24. Nov 2007
36 Beiträge
 
#22

Re: Liste in ein DBGrid schreiben

  Alt 9. Jan 2008, 21:09
Delphi-Quellcode:
  clientdataset1.append;
  dbgrid1.DataSource.DataSet.Edit; //in den Editiermodus wechseln
  dbgrid1.DataSource.DataSet.fields[1].AsString:='hallo3'; //Daten ändern
  dbgrid1.DataSource.DataSet.Post; //Änderungen speichern
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.616 Beiträge
 
Delphi 12 Athens
 
#23

Re: Liste in ein DBGrid schreiben

  Alt 9. Jan 2008, 21:18
Oha, Du solltest Dir wirklich erst die Tutorials in Ruhe ansehen. Du gehst mit Append in den Einfügemodus und anschließend mit Edit gleich wieder in den Editiermodus.
Delphi-Quellcode:
clientdataset1.append; //in den Einfügemodus wechseln
// diese Zeile ist zuviel dbgrid1.DataSource.DataSet.Edit; //in den Editiermodus wechseln
  clientdataset1.fields[1].AsString:='hallo3'; //Daten eintragen
  clientdataset1.Post; //Änderungen speichern
Ich weiß ja nicht, welche Delphi-Version Du hast, daher mal ein paar Zitate aus der Delphi 7-Hilfe:
Zitat:
Die Methode Append fügt einen neuen, leeren Datensatz am Ende der Datenmenge hinzu.

Delphi-Syntax:

procedure Append;

C++ Syntax:

void __fastcall Append(void);

Beschreibung

Bei Datenmengen, die eine Bearbeitung erlauben, können Sie mit Append folgende Aktionen durchführen:

1 Einen neuen leeren Datensatz am Ende der Datenmenge öffnen.
2 Der neue wird zum aktiven Datensatz gemacht.

Nach dem Aufruf von Append kann die Anwendung den Benutzern die Eingabe von Daten in die Felder des neuen Datensatzes ermöglichen. Anschließend können die Änderungen mit Post in in die Datenbank oder das Änderungsprotokoll eingetragen werden (Client-Datenmengen können die im Protokoll enthaltenen Änderungen durch einen Aufruf von ApplyUpdates in die Datenbank schreiben). Ein neu hinzugefügter Datensatz wird auf eine von drei Arten in die Datenbank eingetragen:

Bei indizierten Paradox- und dBASE-Tabellen wird der Datensatz anhand seiner Indexposition in die Datenmenge eingefügt.
Bei nicht indizierten Paradox- und dBASE-Tabellen wird der Datensatz am Ende der Datenmenge hinzugefügt.
Bei SQL-Datenbanken ist die physikalische Position des Datensatzes von der jeweiligen Implementierung abhängig. Ist die Tabelle indiziert, wird der Index mit den neuen Datensatzinformationen aktualisiert.
Das Beispiel dazu:
Zitat:
In diesem Beispiel wird ein neuer Datensatz an eine Tabelle oder Client-Datenmenge angehängt, wenn der Benutzer auf eine Schaltfläche klickt. Die beiden Felder ALPHANUMERIC und INTEGER werden mit dem Inhalt zweier Eingabefelder gefüllt.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);

begin
  SampleTable.Append;
  SampleTable.FieldValues['ALPHANUMERIC'] := Edit1.text;
  SampleTable.FieldValues['INTEGER'] := StrToInt(Edit2.text);
  SampleTable.Post;
end;
Und zu AppendRecord:
Zitat:
Die Methode AppendRecord fügt einen neuen Datensatz mit Daten am Ende der Datenmenge hinzu und trägt ihn ein.

Delphi-Syntax:

procedure AppendRecord(const Values: array of const);

C++ Syntax:

void __fastcall AppendRecord(const System::TVarRec * Values, const int Values_Size);

Beschreibung

Mit AppendRecord können Sie einen neuen, leeren Datensatz am Ende der Datenmenge erstellen, ihn mit den in Values übergebenen Feldwerten füllen und in die Datenbank oder das Änderungsprotokoll eintragen. Der Parameter Values ist in C++ ein Array von Feldwerten. Der Parameter Values_Size ist der Index des letzten Wertes (um eins kleiner als die Gesamtzahl der Werte).

Ein neu hinzugefügter Datensatz wird auf eine von drei Arten in die Datenbank eingetragen:

Bei indizierten Paradox- und dBASE-Tabellen wird der Datensatz anhand seiner Indexposition in die Datenmenge eingefügt.
Bei nicht indizierten Paradox- und dBASE-Tabellen wird der Datensatz am Ende der Datenmenge hinzugefügt.
Bei SQL-Datenbanken ist die physikalische Position des Datensatzes von der jeweiligen Implementierung abhängig. Ist die Tabelle indiziert, wird der Index mit den neuen Datensatzinformationen aktualisiert.

Der neue Datensatz wird anschließend zum aktiven Datensatz.
Wieder das Beispiel dazu:
Zitat:
Diese Anweisung fügt einen Datensatz an die Daten von Customer an. Für einige der Werte werden Nullen eingegeben. Dies ist jedoch für fehlende Werte am Ende des Arrayarguments (nach dem Feld Discount) nicht erforderlich.

Customer.AppendRecord([CustNoEdit.Text,CoNameEdit.Text, AddrEdit.Text, Null, Null, Null, Null, Null, Null, DiscountEdit.Text]);
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
andy21

Registriert seit: 24. Nov 2007
36 Beiträge
 
#24

Re: Liste in ein DBGrid schreiben

  Alt 9. Jan 2008, 21:28
Ähm ja, also einen neuen Datensatz erstellen und dort etwas einfügen funktioniert ja. Wie kann ich jedoh auf einen speziellen zugreifen und dort etwas ändern. Für mich ist einfach nur unschlüssig wie ich eine Zeile/Datensatz auswählen kann. Wenn man dort so einfach navigieren könnte, wäre das gar nicht so das Problem. Ich brauche ja nur die geringsten Funktionen. ^^
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.616 Beiträge
 
Delphi 12 Athens
 
#25

Re: Liste in ein DBGrid schreiben

  Alt 9. Jan 2008, 21:30
Wenn Du einen Datensatz im DBGrid anklickst, sollte dieser eigentlich automatisch zum aktuellen werden.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
andy21

Registriert seit: 24. Nov 2007
36 Beiträge
 
#26

Re: Liste in ein DBGrid schreiben

  Alt 9. Jan 2008, 21:33
Und via Programmcode? Wenn ich beispielsweise eine gewisse Datenmenge habe, die ich aktualisiere? Wie könnte ich denn in den Zeilen wandern. Also quasi wie in einer Schleife oder so ähnlich.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.616 Beiträge
 
Delphi 12 Athens
 
#27

Re: Liste in ein DBGrid schreiben

  Alt 9. Jan 2008, 21:37
Vom ersten zum letzten Datensatz durchgehen?
Delphi-Quellcode:
Dataset.First;
while not Dataset.EOF do
  begin
    //mach was mit dem Datensatz
    Dataset.Next;
  end;
Wenn aber datensensitive Komponenten verbunden sind (z.B. das DBGrid), solltest Du aus Performancegründen vorher ein Dataset.DisableControls und anschließend ein Dataset.EnableControls absetzen (am Besten in einem try-finally-Block).
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
andy21

Registriert seit: 24. Nov 2007
36 Beiträge
 
#28

Re: Liste in ein DBGrid schreiben

  Alt 9. Jan 2008, 21:53
Alles klar. Funktioniert super.

Vielen dank für deine ausgiebige Hilfe und tut mir Leid für die Umstände.

  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.616 Beiträge
 
Delphi 12 Athens
 
#29

Re: Liste in ein DBGrid schreiben

  Alt 9. Jan 2008, 21:56
Zitat von andy21:
Vielen dank für deine ausgiebige Hilfe und tut mir Leid für die Umstände.
Kein Problem, aber das nächste Mal erst ausgiebig die Hilfe lesen, dazu ist sie ja da
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
andy21

Registriert seit: 24. Nov 2007
36 Beiträge
 
#30

Re: Liste in ein DBGrid schreiben

  Alt 9. Jan 2008, 22:02
Teilweise habe ich da ja auch gelesen (über Append beispielsweise). Das Problem ist nur, dass ich manchmal nicht weiß wonach ich suchen soll und manchmal (na gut öfter) es auch nicht verstehe. ^^
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 23:11 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