Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Problem beim Schreiben in eine Paradox-DB (https://www.delphipraxis.net/34736-problem-beim-schreiben-eine-paradox-db.html)

Johannes Maier 27. Nov 2004 15:49


Problem beim Schreiben in eine Paradox-DB
 
Hallo,

ich erstelle in meinem Programm eine Paradox7-Tabelle zur Laufzeit bzw. ich lade eine vorhandene.
Nun möchte ich in ein Feld mit dem Namen 'Befehl' etwas hineinschreiben per Code, allerdings hab ich schon viel probiert und bekomme es einfach nicht hin ....
Delphi-Quellcode:
tblCode.Active := False;
tblCode.First;
tblCode.FieldByName('Befehl').AsString := '123';
tblCode.Active := True;
Das Tauschen der ersten zwei Zeilen hat auch nichts genutzt.
Entweder kommt: "Die Operation darf nicht auf eine geschlossene Tabelle angewandt werden" oder "Feld nicht gefunden 'Befehl'" obwohl es eindeutig existiert ...
ich blicke einfach nicht da durch :(
Ich möchte in der ersten Zeile in die Spalte "Befehl" einfach etwas hineinschreiben, dann in die nächste Zeile gehen und dort weitermachen. Aber wenn schon das Schreiben nicht funktioniert, dann weiß ich auch nicht weiter. Vorher hatte ich es mit einem anderen Feld probiert und das hat er auch gefunden, allerdings hat da mein Schreiben obwohl kein Fehler kam überhaupt nichts bewirkt ...
Hoffe, ihr könnt mir da helfen ;)

Gruß
Johannes

Albi 27. Nov 2004 16:01

Re: Problem beim Schreiben in eine Paradox-DB
 
Hallo,

Die Table, auf die Du schreiben willst muß aktiv.

Deine Procedure könnte dann so aussehen

Code:
Table.Active:= true;
Tabele.Edit; //Tabelle in Edit Mudus setzen um sie zu bearbeiten
Table.Append; //um einen neuen Datensatz anzulegen
Table.FieldByName('Feld').AsString:= '123';
Table.post; //um die Bearbeitung zu beenden und den DS zu speichern
So solltest Du deine Daten in der DB speichern.

kiar 27. Nov 2004 16:06

Re: Problem beim Schreiben in eine Paradox-DB
 
Hallo Johannes,

dein fehler liegt daran das du in eine geschlossene Tabelle schreiben willst.

versuche es mal so:
Delphi-Quellcode:
Table1.open;   // öffnen der tabelle
Table1.first;  // den ersten datensatz zum aktiven machen
Table1.fieldbyname('befehl').asstring:= '123';
table1.next;   // nächster datensatz zum aktiven machen
Table1.fieldbyName('befehl').asstring:= '456';
tabel1.post;   // speichern der änderungen
table1.close;  // schliessen der tabelle
raik

Johannes Maier 27. Nov 2004 16:50

Re: Problem beim Schreiben in eine Paradox-DB
 
Danke für die Tipps ;) Es klappt :D

Albi 27. Nov 2004 17:38

Re: Problem beim Schreiben in eine Paradox-DB
 
Ich würde dieses aber nicht über die Table Kompos umsetzen sondern mit der Query Kompo, dies ist wesentlich flexibler.

Auf dein Muster umgesetzt könnte es so aussehen:

Code:
With Query Do
Begin
  Close; //Query schliessen
  SQL.clear; //Query löschen
  SQL.ADD('select * From DB'); //Query mit Daten füllen
  Open; //Query öffnen
  First; //zum ersten DS springen
  Edit; //zum bearbeiten des Datensatzes
  Append; // um neuen DS anzulegen;
  FieldBYName('Feld').AsString:= '123';
  Next; //nächsten DS wählen
  FieldByName('Feld').AsString:= '1234';
  Post; //speichern
end;
Die Änderungen werden aber erst nach dem schließen und erneuten öffnen der Query sichtbar.


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