taller procedimientos introduccion funciones datos crear conclusion almacenados sqlite stored-procedures

sqlite - introduccion - procedimientos almacenados taller de base de datos



¿Crear procedimiento almacenado y SQLite? (4)

¿Es de alguna manera posible crear un procedimiento almacenado cuando se usa SQLite?


SQLite ha tenido que sacrificar otras características que algunas personas consideran útiles, como alta concurrencia, control de acceso detallado, un amplio conjunto de funciones integradas, procedimientos almacenados , características esotéricas del lenguaje SQL, extensiones XML y / o Java, tera- o escalabilidad de petabits, y así sucesivamente

Fuente: usos apropiados para SQLite


Si todavía está interesado, Chris Wolf realizó una implementación prototipo de SQLite con procedimientos almacenados. Puede encontrar los detalles en su publicación de blog: Agregar procedimientos almacenados a SQLite


Sin embargo, es posible simularlo utilizando una tabla dedicada, llamada así por su fake-sp, con un desencadenador DESPUÉS DE INSERTAR. Las filas de la tabla dedicada contienen los parámetros para su sp falso, y si necesita devolver resultados, puede tener una segunda tabla (con temperatura variable) (con el nombre relacionado con el fake-sp) para contener esos resultados. Requerirá dos consultas: primero, INSERTAR datos en la tabla de activación de fake-sp, y la segunda para SELECCIONAR de la tabla de resultados de fake-sp, que podría estar vacía, o tener un campo de mensaje si algo salió mal .


Respuesta : NO

He aquí por qué ... Creo que una razón clave para tener procs almacenados en una base de datos es que está ejecutando código SP en el mismo proceso que el motor SQL. Esto tiene sentido para los motores de bases de datos diseñados para funcionar como un servicio conectado a la red, pero el imperativo para SQLite es mucho menor dado que se ejecuta como una DLL en su proceso de aplicación en lugar de en un proceso separado de motor SQL. Por lo tanto, tiene más sentido implementar toda la lógica de su negocio, incluido lo que hubiera sido el código SP en el idioma del host.

Sin embargo, puede extender SQLite con sus propias funciones definidas por el usuario en el lenguaje de host (PHP, Python, Perl, C #, Javascript , Ruby , etc.). A continuación, puede usar estas funciones personalizadas como parte de cualquier SQLite select / update / insert / delete. He hecho esto en C # usando el SQLite de DevArt para implementar el hash de contraseñas.