Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Datenbank editieren nicht möglich (https://www.delphipraxis.net/51999-datenbank-editieren-nicht-moeglich.html)

KlaDo 22. Aug 2005 14:07

Datenbank: Paradox • Version: 7 • Zugriff über: TTable

Datenbank editieren nicht möglich
 
Habe mit Delphi3 prof. eine kleine Datenbakanwendung geschrieben.
Leider lassen sich die Einträge mit 'append' anhängen, mit 'edit'
oder 'insert' erhalte ich je nach Code-Variation zwei Fehlermeldungen:
EDatabaseError -"Datenmenge weder im Editier- noch Einfügemodus"
oder
EDBEngineError - "Datensatz von anderem Anwender gesperrt"

Anbei ein Code-Ausschnitt

Delphi-Quellcode:
try
 form3.show;
 DataModule4.Table2.Open;
 with DataModule4.Table2 do
 begin
   Edit;
    Form3.Edit2.Text := FieldByName('BrennerNr').AsString;
    Form3.Edit3.Text := DateToStr(FieldByName('Datum').AsDateTime) ;
{...
   }
   post;
 end;
 DataModule4.Table2.Close;
except
  DataModule4.Table2.Close;
end;
Wer weiss Rat?

[edit=r_kerber]Code-Tags korrigiert. Mfg, r_kerber[/edit]

Thanatos81 22. Aug 2005 14:25

Re: Datenbank editieren nicht möglich
 
Delphi-Quellcode:
  form3.show;
  DataModule4.Table2.Open;
try
  with DataModule4.Table2 do
  begin
    Edit;
    FieldByName('BrennerNr').AsString := Form3.Edit2.Text;
    DateToStr(FieldByName('Datum').AsDateTime) := Form3.Edit3.Text ;
    {...
    }
    post;
  end;
finally
  DataModule4.Table2.Close;
end;
  1. Du kannst statt nem try .. except .. end einen try .. finally .. end nehmen. Das im Finally wird immer ausgelöst, egal ob Exception oder nicht.
  2. FieldByName()-Zeilen vertauscht, da du ja deine Tabelle editieren und nicht auslesen möchtest.
  3. EDBEngineError - "Datensatz von anderem Anwender gesperrt" passiert eigentlich nur, wenn du mehrere Instanzen laufen hast, oder im Netzwerk mehrere user aktiv sind, und zwei Leute den selben DS bearbeiten wollen.
  4. Achte nächstes Mal bitte etwas mehr auf die Tags, war nicht leicht zu lesen :wink:
  5. Jetzt bin ich mit meinem Latein auch am Ende, es sei denn, im auskommentierten Teil machst du mit der Table noch was, oder irgendwo anders in der Applikation wird im OnChange-Ereignis eines datensensitiven Objekts Code ausgeführt, der auf die Table zugreift, ohne das eine Überprüfung stattfindet, ob das Objekt aktiv ist.
Hoffentlich bringt dich einer der Punkte auf die richtige SPur :stupid:

marabu 22. Aug 2005 14:34

Re: Datenbank editieren nicht möglich
 
Hallo,

herzlich willkommen in der Delphi-PRAXiS.

Im Code von Thanatos81 steckt noch ein kleiner Fehler:

Delphi-Quellcode:
...
FieldByName('Datum').AsDateTime := StrToDate(Form3.Edit3.Text);
...
Grüße vom marabu

Thanatos81 22. Aug 2005 14:40

Re: Datenbank editieren nicht möglich
 
Hups :oops: Tatsächlich. Copy&Pasten sollte für Programmierer verboten werden :cyclops:

Und ach ja: Herzlich willkommen!

KlaDo 22. Aug 2005 15:08

Re: Datenbank editieren nicht möglich
 
Ersteinmal ein 'Danke Schön' für die schnelle Hilfe. :-D

Es existieren in der Tat mehrer 'Tables' die gleichzeitigen Zugriff haben.
Die Grundidee der vertauschten FieldByName-Zeilen ist, erst die 'Edit- Felder'
mit Werte zu füllen um sie zu editieren und dann mit einer anderen 'Button-Aktion'
zu übernehmen.
Kann leider momentan nicht die Vorschläge ausprobieren
glaube aber das sie helfen

MfG
KlaDo

Ps. Freut mich dabei zu sein :)


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