Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-04-2007
Loviedo Loviedo is offline
Miembro
 
Registrado: dic 2004
Posts: 214
Poder: 0
Loviedo cantidad desconocida en este momento
Parámetro como nombre de campo

Tengo que ejecutar un procedimiento almacenado pero el campo que tengo que actualizar no lo conozco va en función de un parámetro. He probado con esto pero no funciona:

Código SQL [-]

CREATE PROCEDURE MODIPRO3 (
    pcas integer,
    pval numeric(9,2),
    pmes varchar(6))
as
begin
UPDATE Propietarios
  SET
    &pmes  = Val
WHERE CASA  = Cas;
END

Se puede incluir parámetro como nombre de campo?

Saludos y Gracias.
Responder Con Cita
  #2  
Antiguo 12-04-2007
Loviedo Loviedo is offline
Miembro
 
Registrado: dic 2004
Posts: 214
Poder: 0
Loviedo cantidad desconocida en este momento
He olvidado indicar que utilizo Delphi7 y Firebird 2.0.

Saludos.
Responder Con Cita
  #3  
Antiguo 12-04-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
No lo he probado pero he leído que si.

Código SQL [-]
CREATE PROCEDURE MODIPRO3 (
    pcas integer,
    pval numeric(9,2),
    pmes varchar(6))
as
begin
execute statement 'UPDATE Propietarios  SET '|| :pmes || ' = ' || pVal ||' WHERE CASA  = ' || pCas;
END

Para concatenar los strings con las variables intercaladas, creo que hay que usar algún operador, pero no estoy seguro, prueba con || (dos tuberías).

La eficiencia es otro tema, esa expresión se compilará al tiempo de ejecutarla, por tanto, es más lento que un update sin expresiones.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #4  
Antiguo 12-04-2007
Loviedo Loviedo is offline
Miembro
 
Registrado: dic 2004
Posts: 214
Poder: 0
Loviedo cantidad desconocida en este momento
El IBExpert lo acepta bien, pero da error al ejecutarlo desde la aplicación en la concatenación.
Muchas gracias por tu ayuda.
Responder Con Cita
  #5  
Antiguo 12-04-2007
Loviedo Loviedo is offline
Miembro
 
Registrado: dic 2004
Posts: 214
Poder: 0
Loviedo cantidad desconocida en este momento
Me ha funcionado, el error estaba en el valor y tamaño del campo.

Muchas gracias de nuevo.
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
extraer nombre y tipo de campo cuscus Firebird e Interbase 10 03-11-2006 18:17:08
Cambiar nombre de un campo ckaki Tablas planas 2 18-10-2006 19:38:37
Nombre de campo dependiendo del mes victortera Firebird e Interbase 1 29-04-2005 18:59:01
Asignar como parámetro el nombre de la tabla PINO72 Firebird e Interbase 4 20-03-2005 20:00:11
pasar el nombre de una tabla en un parametro saul saldaña Firebird e Interbase 2 11-06-2004 20:05:55


La franja horaria es GMT +2. Ahora son las 12:32:22.


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