Est-il possible d'une manière ou d'une autre de créer une procédure stockée lors de l'utilisation de SQLite?
sqlite
stored-procedures
grady
la source
la source
Réponse : NON
Voici pourquoi ... Je pense qu'une raison clé pour avoir stocké des procs dans une base de données est que vous exécutez du code SP dans le même processus que le moteur SQL. Cela a du sens pour les moteurs de base de données conçus pour fonctionner comme un service connecté au réseau, mais l'impératif pour SQLite est beaucoup moins important étant donné qu'il s'exécute en tant que DLL dans votre processus d'application plutôt que dans un processus de moteur SQL séparé. Il est donc plus logique d'implémenter toute votre logique métier, y compris ce qui aurait été du code SP dans le langage hôte.
Vous pouvez cependant étendre SQLite avec vos propres fonctions définies par l'utilisateur dans le langage hôte (PHP, Python, Perl, C #, Javascript , Ruby, etc.). Vous pouvez ensuite utiliser ces fonctions personnalisées dans le cadre de toute sélection / mise à jour / insertion / suppression de SQLite. J'ai fait cela en C # en utilisant SQLite de DevArt pour implémenter le hachage de mot de passe.
la source
Si vous êtes toujours intéressé, Chris Wolf a réalisé une implémentation prototype de SQLite avec des procédures stockées. Vous pouvez trouver les détails sur son article de blog: Ajouter des procédures stockées à SQLite
la source
Pourtant, il est possible de le simuler en utilisant une table dédiée, nommée d'après votre faux-sp, avec un déclencheur AFTER INSERT. Les lignes de table dédiées contiennent les paramètres de votre faux sp, et s'il a besoin de renvoyer des résultats, vous pouvez avoir une deuxième table (poss. Temp) (avec un nom lié au faux-sp) pour contenir ces résultats. Cela nécessiterait deux requêtes: d'abord pour INSÉRER les données dans la fake-sp-trigger-table, et la seconde pour SELECT à partir de la fake-sp-results-table, qui pourrait être vide, ou avoir un champ de message si quelque chose ne va pas .
la source