Autor |
Beitrag |
fabi65
      
Beiträge: 64
|
Verfasst: 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
      
Beiträge: 895
Erhaltene Danke: 7
Windows 7 Ultimate x64
D5 Ent, D7 Arch, RAD Studio 2010 Pro, VS 2008
|
Verfasst: So 17.07.05 14:09
TDataSet.Append bzw. .Insert
|
|
aDm1n
      
Beiträge: 37
Win XP
Turbo Delphi Explorer
|
Verfasst: 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
      
Beiträge: 4106
Erhaltene Danke: 13
Delphi 2010 Pro; Delphi.Prism 2011 pro
|
Verfasst: 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
Delphi-Quelltext 1: 2: 3:
| Table.Edit; Table.Insert; Table.Append; |
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
Delphi-Quelltext
aus, nun werden die Änderungen geschrieben.
BTW BDE ist veraltet und oboslet.
_________________ Markus Kinzler.
|
|
aDm1n
      
Beiträge: 37
Win XP
Turbo Delphi Explorer
|
Verfasst: 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
      
Beiträge: 4106
Erhaltene Danke: 13
Delphi 2010 Pro; Delphi.Prism 2011 pro
|
Verfasst: So 09.04.06 16:51
Sind die DBEdits mit Table1 verknüpft?
Poste mal ein bischen Code.
_________________ Markus Kinzler.
|
|
aDm1n
      
Beiträge: 37
Win XP
Turbo Delphi Explorer
|
Verfasst: 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)
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:
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 raziel: Delphi-Tags hinzugefügt
Einloggen, um Attachments anzusehen!
_________________ Gruß aDm1n
|
|
mkinzler
      
Beiträge: 4106
Erhaltene Danke: 13
Delphi 2010 Pro; Delphi.Prism 2011 pro
|
Verfasst: 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
      
Beiträge: 37
Win XP
Turbo Delphi Explorer
|
Verfasst: 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
      
Beiträge: 4106
Erhaltene Danke: 13
Delphi 2010 Pro; Delphi.Prism 2011 pro
|
Verfasst: 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
      
Beiträge: 37
Win XP
Turbo Delphi Explorer
|
Verfasst: 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
      
Beiträge: 4106
Erhaltene Danke: 13
Delphi 2010 Pro; Delphi.Prism 2011 pro
|
Verfasst: 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
      
Beiträge: 37
Win XP
Turbo Delphi Explorer
|
Verfasst: 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
      
Beiträge: 37
Win XP
Turbo Delphi Explorer
|
Verfasst: 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
      
Beiträge: 4106
Erhaltene Danke: 13
Delphi 2010 Pro; Delphi.Prism 2011 pro
|
Verfasst: So 09.04.06 19:33
Versuch mal :
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.
|
|