PostgreSQL - Obtener el valor de un registro por el campo

 
Vista:
sin imagen de perfil

Obtener el valor de un registro por el campo

Publicado por Roberto (22 intervenciones) el 05/02/2007 17:03:43
¿Como se puede recuperar el valor de un registro teniendo el nombre del campo en una variable?

Lo que quiero es algo así como:

elCampo = "apellidos"

ElContenido = Registro.Fields(elCampo)

Todo esto, claro esta..., dentro del propio codigo de POSTGRESQL (no desde visual .net que eso seria facil)

salu2 Roberto.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Obtener el valor de un registro por el campo

Publicado por Julio (334 intervenciones) el 13/02/2007 16:59:19
Tendrías que crear una función donde generes una cadena SQL dinámico con el nombre del campo, el nombre de la tabla y la condifición, algo así:

cCampo := 'campo1';
cBusqueda := 'algo';

cSql := '';
cSql := '';
cSql := 'Select * from tabla ';
cSql := cSql||' where '||cCampo||' = ';
cSql := cSql||cBusqueda;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Obtener el valor de un registro por el campo

Publicado por Roberto (22 intervenciones) el 14/02/2007 23:25:30
Creo que no he planteado bien la pregunta.
Dentro de una función disparadora tengo los objetos new y old y necesito obtener el valor de un campo, pero NO conozco el nombre del campo a priori, sino que está en una variable.
De ahí mi problema.

Esto funciona correctamente:

valor = old.campo;

pero lo que yo pretendo es esto otro:

variable = "campo";
valor = old.fields(variable);

Agradecería una respuesta, como es lógico, pues en ello me van muchas horas de trabajo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Obtener el valor de un registro por el campo

Publicado por Julio (334 intervenciones) el 15/02/2007 01:01:33
Ah, mmm, creo que postgres no soporta este tipo de operación, no te sabria decir exactamente si es así.

Lo que si te sugiero es que desarrolles una función donde le pases el nombre del campo así como la tabla y esta te capture de acuerdo a la sesión o al rowid del registro el campo que estas tratando obtener.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Obtener el valor de un registro por el campo

Publicado por Roberto (22 intervenciones) el 05/03/2007 14:14:50
Ese es mi problema.

Como desarrollar esta función, ya que veo que no existe la sintasis:
new.campos("nombrecampo").value ó algo similar.

He visto que en C se puede hacer algo, pero de momento no se como hacer una función en C a la cual pasarla el registro NEW u OLD.

Gracias por las respuestas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar