FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Usar variables en un strored procedure
Tengo un procedimiento en una BB.DD. en FB 2.5 definido así:
El problema es que me acabo de dar cuenta que en la tabla sobre la que actúa la clave primaria tiene dos campos: De los dos campos de la clave, el primero de ellos (CodPrv) es fijo y va asociado a la instalación (para los que seáis de España el valor es: 13 Ciudad Real, 28 Madrid, 45 Toledo, etc.); está pensado para si en un futuro se integran las bases de datos que hay en diversas provincias en una única base de datos central. Lo que no se me ocurre es como asignar ese valor fijo CodPrv, que se guarda en una variable desde el momento que se lanza la aplicación, a la hora de ejecutar ese procedimiento. Me he vuelto loco buscando documentación. Última edición por Casimiro Notevi fecha: 06-11-2015 a las 19:53:15. |
#2
|
||||
|
||||
Pásale el parámetro que necesites:
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código Únete al grupo Teaming clubdelphi | Colabora mediante Paypal Última edición por Casimiro Notevi fecha: 06-11-2015 a las 20:03:21. |
#3
|
||||
|
||||
Garcias por la respuesta Casimiro. Un modelo de código similar lo había visto pero no entiendo como asignar el valor a la variable de entrada; es decir: ¿cómo le digo al procedimiento, que además vendrá lanzado desde un trigger, que por ejemplo iProvincia vale 45? En este tema de tirggers y procedires estoy muy verde y os juro que me pierdo hasta con mapa
|
#4
|
||||
|
||||
Me explico mejor. Entiendo que la llamada al procdure sería algo así:
Código PHP:
Código PHP:
Código PHP:
|
#5
|
||||
|
||||
Creo que te estás liando, o seguramente no te estoy entendiendo
Tienes una tabla con 2 campos, el código de la provincia y un código incremental, supongo. Tú das de alta un registro con esos 2 campos, tan sólo que el código incremental se genera automáticamente mediante un trigger en el before insert de la tabla. No necesitas crear ningún stored procedure para eso. El inconveniente que veo es que por ejemplo: provincia madrid 28 y código 1= 281. Sin embargo, la provincia Albacete es 2 y el código 81 formarían: 281 también. Debes hacer un "cast" a ambos valores si no quieres tener problemas, bueno, bastaría con hacerle el cast a la provincia para que tenga siempre 2 caracteres, Para ello, el campo provincia debe ser varchar(2) y rellenar con cero por la izquierda: 01, 02, etc. Algo así: cast(new.provincia as varchar(2)) Tal vez te interese tener una clave ID autoincremental y un campo provincia+código indexado, de tipo varchar. No sé he entendido bien. |
#6
|
||||
|
||||
Gracias por la respuesta. Creo que no me he explicado bien y me has dado una pista para solucionarlo. Vamos por partes.
La tabla a la que me refiero en el ejemplo es esta: Como ves los dos primeros campos son los que están en la clave primaria. No se me había ocurrido ese posible problema que indicas con la clave; es evidente que poniendo el código provincial como VARCHAR(2) se elimina dicho problema. El campo Codigo es (o debería serlo) autoincremental. Y es aquí donde me surgen las dudas: Si no estuviera el campo de la provincia no tendría problema; pero al estar ese campo en la calve primaria ¿cómo haría para crear dicho valor? Es decir, y poniendo el código provincial como VARCAHR (tienes razón: es mejor), para que fuera 011, 012, 013, etc. Con un trigger, por lo que llevo leído y entendido, no se podría ya que en los mismos no se pueden usar variables y si se pueden usar no veo como llamar a una que está definida en el programa. Es decir: en un query podría hacer esto: Código PHP:
Última edición por Casimiro Notevi fecha: 07-11-2015 a las 12:44:35. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Usar objetos con variables. | jularaXD | Varios | 3 | 14-05-2013 11:06:20 |
En que momentos usar variables? | Gerson12 | Varios | 13 | 08-05-2012 03:49:43 |
procedure con parametros variables | rruffino | SQL | 1 | 05-03-2009 01:58:55 |
usar un procedure en varios formularios | adonai | Varios | 21 | 30-03-2007 17:42:34 |
Número máximo de variables en un Procedure | Ana Tudela | Firebird e Interbase | 0 | 26-04-2005 12:32:35 |
|