| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
iluso Invitado
|
Publicado: Dom 25 Ene, 2004 3:49 pm Asunto: Firebird Procedimientos |
|
|
intento crear procedimientos almacenados en Firebird desde EMS (versión evaluación) o desde IBEasy+ però siempre tengo el mismo error al intentar compilar
fmCompile.quCompile:
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 5, char 25.
;.
Alguien me puede ayudar . Gracias. Uso una versión de Firebird 1.5 release candidate 1 , que por cierto no atino a desinstalar para poder instalar de nuevas. |
|
| Volver arriba |
|
 |
Trigger Lt


Registrado: 12 Ago 2002Mensajes: 88Ubicación: Barranquilla (Colombia)
|
Publicado: Lun 26 Ene, 2004 3:42 pm Asunto: |
|
|
podrias enviar el codigo del porcedimiento, por que yo siempre los realizo sin ningun problema... _________________
Trigger  |
|
| Volver arriba |
|
 |
iluso Invitado
|
Publicado: Lun 26 Ene, 2004 3:54 pm Asunto: El codigo |
|
|
BEGIN
SELECT * FROM tabla1
END
Por ejemplo. Si lo usas normalmente me puedo aprovechar un poco de tu experiencia?
Me gustaria saber que pasa con los autonumericos pueden tener el mismo nombre en tablas diferentes? si tienes algun manual de uso o dirección que me impida molestar más también de lo agradeceria.
Ah y gracias. |
|
| Volver arriba |
|
 |
Trigger Lt


Registrado: 12 Ago 2002Mensajes: 88Ubicación: Barranquilla (Colombia)
|
Publicado: Lun 26 Ene, 2004 3:58 pm Asunto: |
|
|
Dame tu email y te envio una base de datos de ejemplo donde genero los autonumericos y triggers con procedimientos
Por cierto ya esta en la Web el FireBird RC8 y el IBexpert 3
Ok _________________
Trigger  |
|
| Volver arriba |
|
 |
amas Cdt

Registrado: 26 Ene 2004Mensajes: 17
|
Publicado: Lun 26 Ene, 2004 4:30 pm Asunto: Gracias |
|
|
| Acabo de registrarme para poder enviar mi correo. |
|
| Volver arriba |
|
 |
iluso Invitado
|
Publicado: Lun 26 Ene, 2004 4:51 pm Asunto: Dudas |
|
|
IBexpert 3 en versión ??
En IBEasy+ no trabajas pues?
ok instale la RC 8 !! |
|
| Volver arriba |
|
 |
Invitado
|
Publicado: Lun 26 Ene, 2004 5:09 pm Asunto: |
|
|
CREATE PROCEDURE PROC_1
AS
begin
SELECT ARTI_NOMBRE FROM articulo
end
intento y...
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 5, char 1.
end.
Que me falta en el procedimiento? |
|
| Volver arriba |
|
 |
TOÑO Master

Registrado: 26 Ago 2002Mensajes: 223Ubicación: Madrid - España -
|
Publicado: Mar 27 Ene, 2004 5:35 pm Asunto: |
|
|
HOLA:
En un procemiento almacenado no te dejara hacer un select libremente, ya que no tiene sentido, otras cosas que si puedes hacer es selecionar unos regs con alguna finalidad, leete los manuales de SQL.
Tambien le tienes que indicar la linea de finalizacion de sentencia ;
y la linea de final de ejecucion (set term ).
set term !!
CREATE PROCEDURE PROC_1
AS
declare variable cod integer ;
begin
select sum (codigo) from articulos where codigo < 10 into :cod;
end ; !!
set term !!
CREATE PROCEDURE PROC_1
AS
begin
delete from articulos;
end ; !!
By. |
|
| Volver arriba |
|
 |
alfredo Master

Registrado: 13 Oct 2003Mensajes: 246Ubicación: Valencia Venezuela
|
Publicado: Mar 27 Ene, 2004 7:48 pm Asunto: |
|
|
Hola, el compilador espera cierto tipo sentencias que tengan sentido en el contexto de un procedimiento almacenado, una seleccion por si sola no tiene sentido si no hacemos nada con ella.
Por otra parte, aunque no he usado IBEasy ni EMS creo que debe especificarse al compilador de alguna manera que no intente ejecutar las clausulas una por una, sino como un todo, en ISQL que es la herramienta que suelo usar pues viene en la instalacion de IB se emplea la sentencia:
Set Term seguido del caracter o juego de caracteres que deseemos utilizar en lugar del punto y coma.
A continuacion pongo un procedimiento que lee todos los articulos de la tabla y los escribe en otra, pudieramos poner una condicion en la seleccion para que fuese mas logica por ej. los articulos que esten por debajo de cierto stock..
sin embargo no lo hare para que sea mas entendible el ejemplo...
| Código: | set term ^; /*Cambiamos el caracter de terminacion por este improbable acento*/
CREATE PROCEDURE PROC_1
AS
declare variable ARTICULO varchar(20);/*En esta Variable guardaremos momentaneamente el nombre*/
begin
for SELECT ARTI_NOMBRE FROM articulo into :ARTICULO /*Bucle para recorrer los resultados de la query*/
do
Begin
Insert into OTRA_TABLA (ARTICULO) values(:ARTICULO);
End
end ^ |
|
|
| Volver arriba |
|
 |
|