Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi MyBase-Frage (https://www.delphipraxis.net/118107-mybase-frage.html)

Tommy1988 31. Jul 2008 18:01

Datenbank: MyBase • Version: - • Zugriff über: -

MyBase-Frage
 
Guten Tag, ich übe mich grade in die Datenbankprogrammierung mit MyBase ein.

Über folgenden Code speichere ich den Inhalt eines DBGrids:
Delphi-Quellcode:
ClientDataSet1.SaveToFile(
    ExtractFilePath(Application.ExeName)+'\myBaseDB.xml',
    dfXML);
Nun meine Frage:
Wie kann ich den Inhalt eines normalen "Edits" speichern?
bzw. Wieso kann ich den Inhalt eines DBEdits zur Laufzeit nicht ändern sondern nur zuweisen?
Weil sonst wüsste ich ja, wie ich den Inhalt, in dem Falle aus dem DBEdit, speichern würde.

sx2008 1. Aug 2008 10:22

Re: MyBase-Frage
 
TDBGrid und TDBEdit sind datensensitive Steuerelemente (data sensitive controls).
Controls sind dazu da, um Daten an der Benutzeroberfläche anzuzeigen und ggf. zu editieren.
Die eigentlichen Daten werden aus dem Programm heraus aber nicht über die Controls gelesen/geschrieben,
sondern der Ansatzpunkt ist TDataSet sowie die Datenfelder (abgeleitet von TField)
Delphi-Quellcode:
// Beispiel
ClientDataSet1.Edit; // Datenmenge in Edit-Modus

// Feldinhalt ändern: Variante 1
ClientDataSet1.FieldByName('Anzahl').AsInteger := ClientDataSet1.FieldByName('Anzahl').AsInteger + 1;

// Feldinhalt ändern: Variante 2
ClientDataSet1['LastChange'] := Now;

// Feldinhalt ändern: Variante 3
// diese Variante ist eher unüblich, weil man Felder ja über den Namen ansprechen sollte
ClientDataSet1.Fields[5] := EditKundenNr.Text; // das 6. Feld ändern

ClientDataSet1.Post; // geänd. Daten speichern

Thomm 25. Aug 2008 22:23

Re: MyBase-Frage
 
Hallo,

ich hab mir auch eine Datenbank mit MyBase angelegt.

Funktioniert bis jetzt einwandfrei

Nur ich blicke nicht durch, ich bekomme immer nur eine Zeile hin :shock:

Ich weiß nicht wie er in die nächste Zeile springt :shock:

Chemiker 25. Aug 2008 22:30

Re: MyBase-Frage
 
Hallo Thomm,

wenn Du auf Dein Form noch einen DBNavigator setzt und DataSource im OI setzt, dann kann man neue Datensätze anlegen.

Bis bald Chemiker

Thomm 25. Aug 2008 22:38

Re: MyBase-Frage
 
Nein, das sollte auch ohne DBNavigator gehen

Ich trage über eine Eingabe-Maske Daten in die DBGrid ein,
sobald ich den OK-Button der Eingabe-Maske gedrückt habe,
sollte er in die nächste leere Zeile springen
Ich weiß allerdings nicht, wie das geht :shock:

omata 25. Aug 2008 22:46

Re: MyBase-Frage
 
siehe #2 + ClientDataSet1.Insert;

Chemiker 25. Aug 2008 22:48

Re: MyBase-Frage
 
Hallo Thomm

oder mit Append einen neuen Datensatz einfügen.

Bis bald Chemiker

Thomm 25. Aug 2008 22:59

Re: MyBase-Frage
 
Append nimmt er nicht

Fehlermeldung

ClientDataSet1.FieldByName('Abfahrtsort').Append falsch

ClientDataSet1.Insert ist nicht schlecht nur ,dass er die neue Zeile nach oben gesetzt hat ,

anstatt nach unten :shock: :shock:

Thomm 25. Aug 2008 23:01

Re: MyBase-Frage
 
Jetzt hab ichs

ClientDataSet1.append :-D

Chemiker 25. Aug 2008 23:01

Re: MyBase-Frage
 
Hallo Thomm

Delphi-Quellcode:
ClientDataSet1.Append;
Bis bald Chemiker


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:01 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