Ist es irgendwie möglich, eine gespeicherte Prozedur zu erstellen, wenn SQLite verwendet wird?
sqlite
stored-procedures
grady
quelle
quelle
Antwort : NEIN
Hier ist der Grund ... Ich denke, ein Hauptgrund für das Speichern von Prozessen in einer Datenbank ist, dass Sie SP-Code im selben Prozess wie die SQL-Engine ausführen. Dies ist für Datenbankmodule sinnvoll, die als netzwerkverbundener Dienst konzipiert sind. Für SQLite ist es jedoch weitaus weniger wichtig, dass es in Ihrem Anwendungsprozess als DLL ausgeführt wird und nicht in einem separaten SQL-Modulprozess. Daher ist es sinnvoller, Ihre gesamte Geschäftslogik zu implementieren, einschließlich des SP-Codes in der Hostsprache.
Sie können SQLite jedoch mit Ihren eigenen benutzerdefinierten Funktionen in der Hostsprache (PHP, Python, Perl, C #, Javascript , Ruby usw.) erweitern. Sie können diese benutzerdefinierten Funktionen dann als Teil jeder SQLite-Auswahl / Aktualisierung / Einfügung / Löschung verwenden. Ich habe dies in C # mit DevArts SQLite getan , um das Passwort-Hashing zu implementieren.
quelle
Wenn Sie immer noch interessiert sind, hat Chris Wolf einen Prototyp der Implementierung von SQLite mit gespeicherten Prozeduren erstellt. Die Details finden Sie in seinem Blogbeitrag: Hinzufügen gespeicherter Prozeduren zu SQLite
quelle
Dennoch ist es möglich , zu fälschen es eine eigene Tabelle mit dem Namen für Ihren fake-sp, mit einem INSERT - Trigger nach. Die dedizierten Tabellenzeilen enthalten die Parameter für Ihre gefälschte SP. Wenn Ergebnisse zurückgegeben werden müssen, können Sie eine zweite (möglicherweise temporäre) Tabelle (mit dem Namen der gefälschten SP) verwenden, um diese Ergebnisse zu enthalten. Es wären zwei Abfragen erforderlich: erstens Daten in die Fake-SP-Trigger-Tabelle EINFÜGEN und zweitens SELECT aus der Fake-SP-Ergebnistabelle, die leer sein könnte, oder ein Nachrichtenfeld haben, wenn etwas schief geht .
quelle