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.
einzelne Zellen protecten, read only geht das ?
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
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
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
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.