Seite 1 von 1

einzelne Zellen protecten, read only geht das ?

Verfasst: Montag 13. Juni 2022, 21:47
von Ernie1412
kann man einzelne Zellen in einer Datenbank als read only markieren, so das wenn einer schreiben will, das nicht geht ?
ich benutze sqlite in Verbindung mit QtSQL.

Re: einzelne Zellen protecten, read only geht das ?

Verfasst: Montag 13. Juni 2022, 22:01
von __deets__
Vermutlich durch ableiten des SQL Models und überladen der flags-Methode, die es erlaubt festzulegen, wie eine Zelle bearbeitet werden kann. https://doc.qt.io/qt-5/qabstractitemmodel.html#flags

Re: einzelne Zellen protecten, read only geht das ?

Verfasst: Montag 13. Juni 2022, 22:50
von Ernie1412
nee glaube das ist der falsche Weg.
Ich denke das geht über SQL code "Trigger"
CREATE TRIGGER trigger_name
BEFORE UPDATE
ON table_name ...
und weiter ?
so sagt er mit error:
CREATE TRIGGER cell_readonly BEFORE UPDATE ON name FOR EACH ROW (SELECT name FROM DB_Artist WHERE ArtistID=1)
BEGIN
SELECT raise(abort, 'Hier nicht erlaubt !');
END

ich habs hinbekommen juhu :)
CREATE TRIGGER cell_readonly BEFORE UPDATE OF name ON DB_Artist WHEN EXISTS(SELECT name FROM DB_Artist WHERE ArtistID=1)
BEGIN
SELECT raise(abort, 'Hier nicht erlaubt !');
END

https://www.sqlite.org/lang_createtrigger.html

die Seite hat mir dabei geholfen. Man bin ich froh :)

ich glaube jetzt muss ich für jede zelle einen trigger erstellen
Ausführung wurde mit Fehlern beendet.
Ergebnis: trigger cell_readonly already exists bekomme ich sonst

Re: einzelne Zellen protecten, read only geht das ?

Verfasst: Dienstag 14. Juni 2022, 07:25
von Sirius3
sqlite ist eng mit dem Programm, das die Datenbank benutzt, verknüpft. Da ist es üblicher, die Logik, was verändert werden darf, im Programm zu implementieren. Denn diese Regeln sollten ja nochmal in der GUI durchgesetzt werden, denn sonst ist die User-Experience recht mäßig.

Re: einzelne Zellen protecten, read only geht das ?

Verfasst: Dienstag 14. Juni 2022, 07:35
von __deets__
Kann man so machen. Dann ist es halt 💩 🤷🏼‍♂️

Re: einzelne Zellen protecten, read only geht das ?

Verfasst: Dienstag 14. Juni 2022, 07:56
von sparrow
@Ernie1412: Mir fällt ehrlich gesagt kein Grund ein, warum man das überhaupt machen sollte. Warum sollen denn bestimmte Datensätze nicht zu verändern sein?