[gelöst] Kann man DBEdit in der Anzeigemaske editieren?

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
Antworten
wega
Beiträge: 57
Registriert: Di 6. Dez 2011, 15:36

[gelöst] Kann man DBEdit in der Anzeigemaske editieren?

Beitrag von wega »

Hallo zusammen,

zur Anzeige des Datenbankinhaltes benutze ich DBEdit.
Wird auch alles angezeigt.
Will ich aber den Ihnhalt des DBEditfeldes verändern, stelle ich einen Schreibschutz fest.
In den Eigenschaften zum DBEditfeld finde ich aber keine Option das abzustellen.
Es gibt zwar eien Readony Einstellung, aber diese kann ich von false auf true setzen, es ändert sich aber nichts am Verhalten des Feldes im Programm.

Lediglich, wenn ich ein zusätzliches Editfeld aufziehe, in den ich den Ihalt von DBEdit hineinschreibe, kann ich natürlich den Inhalt des Editfeldes ändern und den geänderten Wert an DBEdit zum schreiben an die Datenbank übergeben.
Das funktioniert.

Einfacher wäre es aber, wenn ich direkt den DBEdit-inhalt in der ausgabemaske ändern könnte.

Hat hierzu jemand einen Vorschlag?

mit Gruß
Werner
Zuletzt geändert von wega am Do 2. Feb 2012, 20:01, insgesamt 1-mal geändert.

wega
Beiträge: 57
Registriert: Di 6. Dez 2011, 15:36

Re: Kann man DBEdit in der Anzeigemaske editieren?

Beitrag von wega »

Hallo zusammen,

wenn der Inhalt der DBEdit aus einer SQL-Abfrage kommt, dann ist der Wert nicht zu editieren.
Kommt der Inhalt jedoch aus einer ganz normalen Dbf-Verknüpfung, dann kann der Wert editiert werden.

Soll der Wert aus einer SQL-Abfrage geändert werden, dann empfiehlt sich folgendes:

Code: Alles auswählen

sqlquery1.Close;
    SQLQuery1.SQL.Clear;
    sqlQuery1.SQL.Text:= 'SELECT *FROM wz.dbf WHERE [ID] LIKE '+Eintrag;
    ODBCConnection1.Connected:= true;
    SQLTransaction1.Active:= true;
    sqlquery1.Open;
    Edit1.Text:=sqlQuery1.Fields[1].AsString;
    Edit2.Text:=sqlQuery1.Fields[2].AsString;
    Edit3.Text:=sqlQuery1.Fields[3].AsString;
    Edit4.Text:=sqlQuery1.Fields[4].AsString;
    Edit5.Text:=sqlQuery1.Fields[5].AsString;
    Edit6.Text:=sqlQuery1.Fields[5].AsString;
    Edit7.Text:=sqlQuery1.Fields[7].AsString;
    Edit8.Text:=sqlQuery1.Fields[8].AsString;
    Edit9.Text:=sqlQuery1.Fields[9].AsString;
    Edit10.Text:=sqlQuery1.Fields[10].AsString;
    Edit11.Text:=sqlQuery1.Fields[11].AsString;
Also den Feldwert aus der Datenbankdatei in ein ganz normales TEdit-Feld zu schreiben,
zu editieren und nachher per UPDATE wieder zurückzuschreiben.

Oder gibt es einen einfacheren Weg?

mit Gruß
Werner
Zuletzt geändert von Lori am Do 2. Feb 2012, 21:08, insgesamt 1-mal geändert.
Grund: richtiger Highlighter

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: [gelöst] Kann man DBEdit in der Anzeigemaske editieren?

Beitrag von Christian »

Da fehlt warscheinlich nur ein update statement im query ohne das ist das query readonly. Natürlich kann man über tdbedit editieren
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

wega
Beiträge: 57
Registriert: Di 6. Dez 2011, 15:36

Re: [gelöst] Kann man DBEdit in der Anzeigemaske editieren?

Beitrag von wega »

Danke Christian,

man vergißt immer wieder, wie komfortabel LAZARUS eigentlich ist.

Danke.

mit freundlichem Gruß
Werner

Antworten