Mahlzeit.
Bin heute über etwas gestolpert:
Anscheinend ist in Freepascal - sqldb die Option "enforce foreign Keys" für sqlite3conn ein "Opt-in", heisst "foreign_keys=on" muss explizit als Param gesetzt werden, wenn man die Verbindung etabliert. Wenn man es nicht setzt, passiert nämlich später gar nichts.
Ist mir nämlich passiert.
Hab Test-Daten hin- und her gebucht, und mich dauernd gewundert, warum die Detail-Sätze nicht mit über den Jordan flogen bzw. warum ich keine Exception bekam, wenn ich ein ON DELETE RESTRICT hatte
Für MySQL et al ist aber "enforce foreign keys" out of the Box (glaube ich zumindest).
Kann jemand prüfen, ob das mit ZEOS/SQLite auch der Fall ist? (Hab kein ZEOS und will es auch nicht unbedingt installieren)
Hintergrund: GGfs. den Vorschlag an die Devs/Maintainers machen, das mal über einen Kamm zu scheren.
Meinungen?
[ERLEDIGT] SQLite - Foreign Key sind Opt-In??
- Zvoni
- Beiträge: 615
- Registriert: Fr 5. Jul 2024, 08:26
- OS, Lazarus, FPC: Windoof 10 Pro (Laz/FPC fixes)
- CPU-Target: 64Bit
- Wohnort: BW
[ERLEDIGT] SQLite - Foreign Key sind Opt-In??
Zuletzt geändert von Zvoni am Mi 25. Mär 2026, 08:00, insgesamt 1-mal geändert.
Ein System sie alle zu knechten, ein Code sie alle zu finden,
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.
- af0815
- Lazarusforum e. V.
- Beiträge: 7251
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: SQLite - Foreign Key sind Opt-In??
Copyrigth MvC: "It's per design, won't fix'Zvoni hat geschrieben: Di 24. Mär 2026, 08:44 Hintergrund: GGfs. den Vorschlag an die Devs/Maintainers machen, das mal über einen Kamm zu scheren.
Es ist sicher ein feature, wenn es bei den anderen DB Systemen funktioniert. Ich habe da einige Diskussionen mit MvC bezüglich automatischer Transaktionssteuerung geführt. Für ihn ist automatisch nicht unbedingt automatisch, gerade bei Stored Procedures nicht, die von SQLdb im Hintergrung still und heimlich Rollbacked werden. Wenn ein select und ein update bei einem System gehen und das andere über Einstellungen im Treiber -> s.o.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
- Zvoni
- Beiträge: 615
- Registriert: Fr 5. Jul 2024, 08:26
- OS, Lazarus, FPC: Windoof 10 Pro (Laz/FPC fixes)
- CPU-Target: 64Bit
- Wohnort: BW
Re: SQLite - Foreign Key sind Opt-In??
Ernsthaft??af0815 hat geschrieben: Di 24. Mär 2026, 10:55 Copyrigth MvC: "It's per design, won't fix'
Es ist sicher ein feature, wenn es bei den anderen DB Systemen funktioniert. Ich habe da einige Diskussionen mit MvC bezüglich automatischer Transaktionssteuerung geführt. Für ihn ist automatisch nicht unbedingt automatisch, gerade bei Stored Procedures nicht, die von SQLdb im Hintergrung still und heimlich Rollbacked werden. Wenn ein select und ein update bei einem System gehen und das andere über Einstellungen im Treiber -> s.o.
Uff.....hätte ich jetzt nicht erwartet.
OK, aber ist halt eine Aussage, und somit der Thread dann auch beendet.
Ein System sie alle zu knechten, ein Code sie alle zu finden,
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.
-
Socke
- Lazarusforum e. V.
- Beiträge: 3186
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: SQLite - Foreign Key sind Opt-In??
Ihr müsste ja nicht alles auf die FreePascal Maintainer schieben. Hier wird einfach der Standard der jeweiligen Datenbank übernommen.
- In MySQL ist die Prüfung per Standard aktiv, kann aber global oder per Session deaktiviert werden: If set to 1 (the default), foreign key constraints are checked. If set to 0, foreign key constraints are ignored [...] Quelle https://dev.mysql.com/doc/refman/8.4/en ... key_checks
- In SQLite3 ist die Prüfung per Standard abgeschaltet: As of SQLite version 3.6.19, the default setting for foreign key enforcement is OFF. However, that might change in a future release of SQLite. Quelle: https://sqlite.org/pragma.html#pragma_foreign_keys
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
- Zvoni
- Beiträge: 615
- Registriert: Fr 5. Jul 2024, 08:26
- OS, Lazarus, FPC: Windoof 10 Pro (Laz/FPC fixes)
- CPU-Target: 64Bit
- Wohnort: BW
[ERLEDIGT] SQLite - Foreign Key sind Opt-In??
Argghh...... RTFM....Mist...übersehen.Socke hat geschrieben: Di 24. Mär 2026, 19:57 Ihr müsste ja nicht alles auf die FreePascal Maintainer schieben. Hier wird einfach der Standard der jeweiligen Datenbank übernommen.
- In MySQL ist die Prüfung per Standard aktiv, kann aber global oder per Session deaktiviert werden: If set to 1 (the default), foreign key constraints are checked. If set to 0, foreign key constraints are ignored [...] Quelle https://dev.mysql.com/doc/refman/8.4/en ... key_checks
- In SQLite3 ist die Prüfung per Standard abgeschaltet: As of SQLite version 3.6.19, the default setting for foreign key enforcement is OFF. However, that might change in a future release of SQLite. Quelle: https://sqlite.org/pragma.html#pragma_foreign_keys
Ein System sie alle zu knechten, ein Code sie alle zu finden,
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.
-
Socke
- Lazarusforum e. V.
- Beiträge: 3186
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: [ERLEDIGT] SQLite - Foreign Key sind Opt-In??
So wollte ich es nich ausdrücken
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
- Zvoni
- Beiträge: 615
- Registriert: Fr 5. Jul 2024, 08:26
- OS, Lazarus, FPC: Windoof 10 Pro (Laz/FPC fixes)
- CPU-Target: 64Bit
- Wohnort: BW
Re: [ERLEDIGT] SQLite - Foreign Key sind Opt-In??
Da ich es auch gerne benutze, muss ich es akzeptieren, wenn es mir an den Kopf geworfen wird.
Von daher.....
Ein System sie alle zu knechten, ein Code sie alle zu finden,
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.