Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-07-2008
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 27
eduarcol Va por buen camino
Variables en Select

estoy realizando un trigger, dentro de este necesito recuperar valores de una tabla, hasta el momento llevo esto:

Código Delphi [-]
declare variable columna varchar(8);
columna = 'IMP' || New.tipo;
Select :columna, coalesce(porcimpuesto, 0) from cuentasbancarias where codigocuenta = new.codigocuenta into :resulta, imp;

pero al ejecutarlo me da el error String trucation or numeric overflow. Logre aislar el error y si sustituyo :columna por el nombre de un campo ya no sale mas.

Habra alguna forma de decirle en el select la columna como variable??
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #2  
Antiguo 19-07-2008
celades1 celades1 is offline
Miembro
 
Registrado: ago 2005
Posts: 116
Poder: 21
celades1 Va por buen camino
hola

No hay ningun problema por poner variables en select, yo lo hago a menudo
ademas el error que te da tiene que ser por tamaño del varchar, comprueba que no se desborde ninguna de las dos variables resulta y columna o dales
varchaR(100) el error creo que va por ahi

Sino danos todos lo tamaños de resulta columna y tipo


Saludos
Responder Con Cita
  #3  
Antiguo 20-07-2008
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 27
eduarcol Va por buen camino
resulta es de varchar(1) igual que la columna que almacena, y pimp es de tipo float tambien como la columna
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #4  
Antiguo 20-07-2008
celades1 celades1 is offline
Miembro
 
Registrado: ago 2005
Posts: 116
Poder: 21
celades1 Va por buen camino
Hola

Código SQL [-]
declare variable columna varchar(8);
columna = 'IMP' || New.tipo;
Select :columna, coalesce(porcimpuesto, 0) from cuentasbancarias where codigocuenta = new.codigocuenta into :resulta, imp;

Si resulta es varchar(1) nunca puede recibir un :columna que es varchar(8) y
que ademas tendra 'IMP' que ya tiene 3


ahi esta el error

Saludos
Responder Con Cita
  #5  
Antiguo 20-07-2008
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 27
eduarcol Va por buen camino
pero ese es el nombre del campo, resulta almacena el resultado el cual si es de varchar(1)

el nombre del campo puede tener entre 6 y 8 caracteres dependiendo de TIPO, por eso es varchar(8)
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #6  
Antiguo 20-07-2008
celades1 celades1 is offline
Miembro
 
Registrado: ago 2005
Posts: 116
Poder: 21
celades1 Va por buen camino
hola

eso no se puede hacer como tu lo entiendes, ya que en realidad :columna no lo coge com nombre de columna sino como el valor que guarda la variable
Si quieres hacer esto debes utilizar el execute statement a partir de firebird 1.5 creo

seria algo asi

Código SQL [-]
EXECUTE STATEMENT 'SELECT '||:columna||',coalesce(porcimpuesto, 0)  from cuentasbancarias where codigocuenta='||cast(new.codigocuenta as varchar(15)) into :resulta,:imp;


Saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
variables variables (manual php) salvica PHP 0 25-09-2005 16:44:52
Problema conuna consulta select...not in (select ...) VRO Firebird e Interbase 2 11-08-2005 08:56:35
5 select de 5 tablas diferentes en un select solo sakuragi SQL 6 15-06-2005 18:57:06
Select anidado: Select from (select....) Malon SQL 2 14-10-2004 14:01:24
Select anidado ( Select from select ) Malon Firebird e Interbase 1 05-10-2004 04:14:38


La franja horaria es GMT +2. Ahora son las 12:11:40.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi