Créer procédure stockée et SQLite?

est-il possible de créer une procédure stockée, en utilisant SQLite?

146
demandé sur svick 2010-07-26 17:23:53

4 réponses

SQLite a dû sacrifier d'autres caractéristiques que certaines personnes trouvent utiles, telles que la haute concurrence, le contrôle d'accès à grain fin, un ensemble riche de fonctions intégrées, procédures stockées , les caractéristiques de langage SQL ésotérique, XML et / ou extensions Java, TERA-ou peta-byte évolutivité, et ainsi de suite

Source: Utilisations Appropriées Pour SQLite

183
répondu h3xStream 2010-07-26 13:28:14

Réponse : NON

voilà pourquoi ... Je pense qu'une raison clé pour avoir stocké procs dans une base de données est que vous exécutez le 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 étant donné qu'il fonctionne comme une DLL dans votre processus D'application plutôt que dans un moteur SQL séparé processus. Il est donc plus logique de mettre en œuvre toute la logique de votre entreprise, y compris ce qui aurait été du code SP dans la langue d'accueil.

vous pouvez cependant étendre SQLite avec votre propre fonctions définies par l'utilisateur dans la langue hôte (PHP, Python, Perl, C#, Javascript , Ruby etc). Vous pouvez ensuite utiliser ces fonctions personnalisées dans le cadre de N'importe quel SQLite select/update/insert/delete. J'ai fait dans C# en utilisant Devart's SQLite pour mettre en œuvre le hachage de mot de passe.

75
répondu Tony O'Hagan 2017-05-23 10:31:14

si vous êtes toujours intéressé, Chris Wolf a fait un prototype d'implémentation de SQLite avec des procédures stockées. Vous pouvez trouver les détails sur son blog post: ajouter procédures stockées à SQLite

15
répondu torial 2018-03-28 23:41:50

encore, 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 après insertion. Les lignes de table dédiées contiennent les paramètres de votre faux sp, et s'il doit retourner des résultats, vous pouvez en avoir une seconde (poss. temp) table (avec le nom lié au faux-sp) pour contenir ces résultats. Cela nécessiterait deux requêtes: D'abord pour insérer des données dans la table fake-sp-trigger-table, et la seconde pour sélectionner à partir de la table fake-sp-results, qui peut être vide, ou avoir un champ de message si quelque chose tourne mal.

2
répondu slashmais 2018-03-13 06:37:32