Delphi-PRAXiS

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

Chemiker 25. Aug 2008 23:07

Re: MyBase-Frage
 
Hallo Thomm

wenn Du in der Delphi-Hilfe unter DBNavigator schaust, dann kannst Du den Navigator quasi mit eigenen Buttons ersetzen.

Bis bald Chemiker

Thomm 25. Aug 2008 23:11

Re: MyBase-Frage
 
Hallo,

die Hilfe im Turbo Delphi kann man vergessen

Ich hab mir ein paar Bücher gekauft , und schau dort nach,

wenn ich nicht mehr weiterweiss

Chemiker 25. Aug 2008 23:16

Re: MyBase-Frage
 
Hallo Thomm

klar Bücher sind nicht schlecht, aber welches Buch gibt es über Turbo Delphi 2006?

Bis bald Chemiker

Thomm 25. Aug 2008 23:18

Re: MyBase-Frage
 
Über Turbo Delphi gibt es überhaupt kein Buch

Ist aber fast dasselbe wie Delphi

Ich hab das Buch "Borland Delphi 5 Kochbuch Hanser Verlag" ,

dicker Wälzer über 1000 Seiten

Aber sehr gut

Chemiker 25. Aug 2008 23:36

Re: MyBase-Frage
 
Hallo Thomm

Delphi5 das ist aber schon 6-7 Jahre alt. In den Grundstrukturen hat sich ja nicht soviel geändert, aber meistens klemmt es im Detail bei den neueren Delphi-Versionen.

Bis bald Chemiker

Thomm 26. Aug 2008 08:00

Re: MyBase-Frage
 
Ich erhalte jetzt aber immer eine Fehlermeldung, wenn ich was eintragen will :shock:

Zitat:

..............im Projekt ist eine Exception der Klasse EDatabaseError mit der Meldung "ClientDataset1:Operation bei geschlossener Datenmenge nicht ausführbar" aufgetreten.
Weiß jemand , was ich da falsch gemacht habe ?

DeddyH 26. Aug 2008 08:05

Re: MyBase-Frage
 
Setz das ClientDataset mal vorher auf Active.

Thomm 26. Aug 2008 08:13

Re: MyBase-Frage
 
Ich hab den Fehler schon gefunden.

Ich hab
Delphi-Quellcode:
Clientdataset1.append
jetzt schon beim Aufruf der Eingabe-Maske (Form3) eingegeben

dann funktioniert es. :)


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