FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Error de sintaxis al ejecutar procedimiento almacenado en Firebird 2.1.3
Hola a todos; soy nuevo en este foro y estoy recien aprendiendo la sintaxis SQL en firebird. Tengo el siguiente procedimiento almacenado el cual me permite ingresar nuevos registros verificando antes que estos no se repitan ( comprobando el campo código "CODPER" ):
SET TERM ^ ; CREATE PROCEDURE INGRESARPER ( CODPER char(5), APEPER varchar(25), NOMPER varchar(25), DNIPER char(8), FNACPER date, DIRPER varchar(30), PROVPER varchar(25), TELFPER varchar(12), CELPER varchar(16), EMAILPER varchar(30), CARGPER varchar(25), FINGPER date, FCESPER date, PLAPER char(1), FONDPENSPER varchar(25), CODESSPER varchar(15) ) AS declare variable existe smallint; BEGIN SELECT COUNT(*) FROM REGISTROSPER WHERE REGISTROSPER.COD_PER = :codper INTO :existe; IF (:existe = 0) THEN BEGIN INSERT INTO REGISTROSPER VALUES (:codper, :apeper, :nomper, :dniper, :fnacper, :dirper, rovper, :telfper, :celper, :emailper, :cargper, :fingper, :fcesper, laper, :fondpensper, :codessper); END END^ SET TERM ; ^ El problema es que al momento de ejecutar el procedimiento almacenado a través de esta sintaxis: EXECUTE PROCEDURE INGRESARPER('T1000', 'Pérez Aguilar', 'Carlos Daniel', '12345897', '25/05/1990', 'Av. Larco # 846', 'Trujillo', '(044)-425810', '(044)948-654-127', 'pacd@gmail.com', 'Administrador', '15/02/2010', '15/02/2012', '1', 'SNP', 'SDF789RTY156FG5'); Me da el siguiente mensaje de error: Message: isc_dsql_execute2 failed SQL Message : -413 Overflow occurred during data type conversion. Engine Code : 335544334 Engine Message : conversion error from string "25/05/1990" Al parecer el problema es que estoy dando mal los parámetros para los campos de tipo DATE -> conversion error from string "25/05/1990", pero no se como solucionar eso. Agradeceria su aporte. |
#2
|
|||
|
|||
Hola
Debes poner las fechas en formato mm/dd/yy o mm/dd/yyyy
Saludos |
#3
|
|||
|
|||
[Resuelto]
Muchas gracias man algo tan simple jejeje...
|
#4
|
||||
|
||||
Tambien puedes dar mormato a la fecha con puntos barras o guiones:
dd.mm.yy o dd.mm.yyyy mm/dd/yy o mm/dd/yyyy yy-mm-dd o yyyy-mm-dd |
#5
|
|||
|
|||
Opinión personal...
dant:
Según mi opinión personal, lo que estás tratando de hacer es un poco ineficiente. Mira yo lo haría de la siguiente forma: 1.- Crear mi base de datos con el siguiente juego de caracteres: ISO8859_1 (que es el juego de caracteres para la mayoría de los idiomas occidentales, incluyendo el Español, por supuesto). 2.-Crear los campos de Nombre, Apellido Paterno y Apellido Materno con el juego de caracteres mencionado arriba y utilizar el siguiente collate: ES_ES_CI_AI (Español de España, Caracter Insensitive, Accent Insentive), es decir tus campos no van a ser sensibles a mayúsculas ni minúsculas ni a los acentos. Por ejemplo, el siguiente nombre: Gerardo Suárez Trejo, sería exactamente igual a GERARDO Suarez Trejo (me explico, no importan las mayúsculas ni los acentos). 3.- Crear un campo computado con la concatenación de Apellido Paterno + Apellido Materno + Nombre (puedes calcular este campo con las valores antes capturados y es mucho mas cómodo para los usuarios). 4.- Creas un índice con el campo calculado (tu búsquedas sería de lo mas rápido que puedas imaginar, incluso puedes hacer búsquedas parciales, por ejemplo nombre_cmplto = 's', o nombre_cmplto = 'sua', etc. (la búsqueda automáticamente utilizaría el índice antes mencionados lo cual nos traería muchos beneficios en cuanto a velocidad se refiere). 5.-Creas un disparador (trigger before insert or update), y aquí haces una búsqueda para saber si existe el nombre_cmplto antes de hacer la inserción en la BD) anexo un pequeño ejemplo que hice para una Escuela.
Saludos, Gerardo Suárez Trejo PD. No dejes de platicarnos como te fue... |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Procedimiento Almacenado de DBF a FireBird | sierraja | Firebird e Interbase | 4 | 05-09-2007 19:04:41 |
ejecutar Procedimiento almacenado en SQL Server, Intraweb. | Roilo | Internet | 9 | 25-07-2007 18:01:32 |
Ejecutar Procedimiento Almacenado en Trigger | AGAG4 | SQL | 16 | 21-09-2004 03:27:47 |
Ejecutar un Procedimiento almacenado | saul saldaña | MS SQL Server | 1 | 03-08-2004 21:20:30 |
Como Ejecutar Un Query Desde Un Procedimiento Almacenado | multisof | Firebird e Interbase | 2 | 04-11-2003 06:15:28 |
|