Autor Beitrag
fabi65
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 64



BeitragVerfasst: So 17.07.05 13:28 
hi,

da ich per schleife etwas in eine DB (paradox 7) einfügen will kann ich den DB Navigator nicht benutzen. Wie kann ich jetzt etwas per Befehl in die datenbank einfügen?
Robert.Wachtel
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 895
Erhaltene Danke: 7

Windows 7 Ultimate x64
D5 Ent, D7 Arch, RAD Studio 2010 Pro, VS 2008
BeitragVerfasst: So 17.07.05 14:09 
TDataSet.Append bzw. .Insert
aDm1n
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 37

Win XP
Turbo Delphi Explorer
BeitragVerfasst: So 09.04.06 15:31 
Ich habe praktisch die gleiche Frage und kann damit jetzt leider noch nicht allzuviel anfangen (delphi-ultra-noob). Wäre es möglich das anhand eines Beispiels nochmal etwas genauer zu erklären? Ich habe eine Datenbank namens "Geburtstage.db" (auch paradox7) und habe jetzt ein neues form gemacht in dem ich zwei dbedit-felder (Name, Geburtstag = Spalten in der Datenbank) platziert habe. Wie stelle ich es am besten an, wenn ich was in die edit-felder einlesen lassen will und dann über einen ok-button in die datenbank schreiben will?

_________________
Gruß aDm1n
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: So 09.04.06 15:46 
Dann benötigst eigentlich 2 Buttons mit dem ersten versetzt du die Table in den Insert/ bzw Edit Modus mit

ausblenden Delphi-Quelltext
1:
2:
3:
Table.Edit; //Aktuellen Datensatz bearbeiten bzw  
Table.Insert; //Neuen Datensatz an der aktuellen Position der Tabelle einfügen bzw
Table.Append; // einen neuen Datensatz ans Ende der Tabelle einfügen.


Die mit der TTable-Komponente mittles TDataSource verknüften DBEdits stehen nun auf den aktuellen DS ( bei neuem sind diese natürlich leer).

Im 2. Button führst du
ausblenden Delphi-Quelltext
1:
Table.Post;					

aus, nun werden die Änderungen geschrieben.

BTW BDE ist veraltet und oboslet.

_________________
Markus Kinzler.
aDm1n
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 37

Win XP
Turbo Delphi Explorer
BeitragVerfasst: So 09.04.06 16:36 
Danke erstmal für die schnelle Antwort.
Mein Problem ist leider noch nicht beseitigt. Mein Programm ist so aufgebaut, dass es in einem Hauptfenster startet und man dort einen Button drücken muss um einen neuen Eintrag zu schreiben. Wenn ich dich richtig verstanden habe, dann muss ich um einen neuen Datenbankeintrag zu schreiben die Datenbank zuerst in den append-modus setzen (?). Dies geschiet jetzt beim Klicken des Buttons um zum "neuer eintrag"-form zu kommen. Jetzt hab ich zwei Probleme und zwar, dass ich aus irgendeinem Grund nichts in die dbedit-felder schreiben kann (!), und außerdem dass wenn ich den bestätigen-knopf drücke (Table1.post), die Meldung erscheint: "Table1: Dataset not in edit or insert mode."
Ich habe auch schon probiert das Table1.post durch ...insert und ...edit zu ersetzen was jedoch leider nichts geholfen hat. Kannst du mir weiterhelfen?
Danke im Vorraus

_________________
Gruß aDm1n
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: So 09.04.06 16:51 
Sind die DBEdits mit Table1 verknüpft?

Poste mal ein bischen Code.

_________________
Markus Kinzler.
aDm1n
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 37

Win XP
Turbo Delphi Explorer
BeitragVerfasst: So 09.04.06 17:22 
Die edit-felder sind eigentlkich richtig verknüpft.
In meinem Hauptfenster hat der Knopf für einen neuen Eintrag folgenden Code: (sry hab keine Ahnung wie man das hier als code reinschreibt)

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
procedure Tfrm_main.btn_neuClick(Sender: TObject);
begin
frm_neu.showmodal;
frm_neu.Table1.open;
frm_neu.Table1.append;
end;


Und im Fenster in dem man den neuen Eintrag schreibt, hat der Bestätigen-Knopf folgende Prozedur:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
procedure Tfrm_neu.Button1Click(Sender: TObject);
begin
Table1.post;
Table1.close;


Ich hab zusätzlich mal mein Projekt angehängt (vllt. hilfts was...).
Danke im Vorraus

Moderiert von user profile iconraziel: Delphi-Tags hinzugefügt
Einloggen, um Attachments anzusehen!
_________________
Gruß aDm1n
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: So 09.04.06 17:37 
Die DBedits sind nicht mit der DataSource verknüpft.

Allg. Bemerk:
-Ich würde die TTable-Komponente in ein Datenmodul auslagern, so benötigst du sie nur einmal.
-Datumseingaben würde ich über einen TDBDatetimePicker realisiern.

_________________
Markus Kinzler.


Zuletzt bearbeitet von mkinzler am So 09.04.06 17:39, insgesamt 1-mal bearbeitet
aDm1n
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 37

Win XP
Turbo Delphi Explorer
BeitragVerfasst: So 09.04.06 17:39 
Das ist mir gleich nach dem post aufgefallen und ich habs behoben. Geht bei mir leider immer noch net. -_-

_________________
Gruß aDm1n
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: So 09.04.06 17:41 
Also bei mir funktioniert es. Ich würde aber das Table1.Close entfernen und wie oben beschrieben die Table-Komponente verschieben.

_________________
Markus Kinzler.
aDm1n
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 37

Win XP
Turbo Delphi Explorer
BeitragVerfasst: So 09.04.06 19:00 
Also ich bin hier am Verzweifeln. Ich hab den datasource-wert der edit-felder auf datasource1 gesetzt, aber es hat nichts geholfen. Wenn ich dich richtig verstanden ´habe, dann sind deine Tipps zum einfachen funktionieren nicht notwendig (?)

_________________
Gruß aDm1n
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: So 09.04.06 19:04 
Ja, sind sie nicht, aber ich sehe du hast ein weiterer Button auf deinem Hauptformular zum editieren der daten. Auf diesem Formular hättest du ja eine weitere TTable-Komponente und deshalb würde ich diese in ein Datenmodul auslagern. Ein DatePicker ermöglicht es ein datumswert direkt aus einem kalenderblatt auszuwählen, was sicherstellt, das die Eingabe korrekt ist.

Was geht nicht? Fehlermeldung?

_________________
Markus Kinzler.
aDm1n
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 37

Win XP
Turbo Delphi Explorer
BeitragVerfasst: So 09.04.06 19:14 
Fehlermeldung iss genau wie vorher wenn ich auf den bestätigen-button klicke: "table1: dataset not in edit or insert mode" -_-

_________________
Gruß aDm1n
aDm1n
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 37

Win XP
Turbo Delphi Explorer
BeitragVerfasst: So 09.04.06 19:32 
Hmm... Ich glaube ich habe meinen Fehler gefunden: Ich hab vergessen den activ-wert auf "true" zu setzen. -_- Tut mir Leid, dass ich deine Zeit so beansprucht habe. *doppelschäm*
Danke für den Aufwand...

_________________
Gruß aDm1n
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: So 09.04.06 19:33 
Versuch mal :
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
procedure Tfrm_main.btn_neuClick(Sender: TObject);
begin
  frm_neu.Table1.open;
  frm_neu.Table1.append;
  frm_neu.showmodal;
end;

_________________
Markus Kinzler.