Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Que Campo, Alias? (https://www.clubdelphi.com/foros/showthread.php?t=21496)

vtdeleon 19-05-2005 01:06:54

Que Campo, Alias?
 
Saludos.
Código SQL [-]
Select nom as nombre from Empleados
Como puedo saber el nombre del campo consultado por medio del Alias?:confused:
Como obtengo nom como resultado? porque en realidad es el campo que esta siendo consultado

hermes_32 19-05-2005 09:23:52

Hola vtdeleon,

te sugiero que te expliques mas porque no se a que te refieres ni creo que nadie que lo lea.

Un saludo.

vtdeleon 19-05-2005 15:42:25

Saludos.

Ok, Disculpe. Como la idea solo esta en mi cabeza, lo exprese como lo entiendo:p.

Suponiendo que tengo un Query, y dbgrid conectados entre si.

En la consulta anterior, me devolvera un Campo llamado Nombre. Pero en realidad el nombre de ese campo en la tabla no es Nombre sino nom.

Como obtengo en nombre real del Campo?, por medio de esa consulta.

La idea es dar clic en title del click y extraer el nombre real del campo, para realizar otra cosa.

Gracias por la observacion y el interes:D

Lepe 19-05-2005 15:45:39

dbgrid1.Columns[0].FieldName???? :p

jachguate 19-05-2005 18:19:26

FieldByName devolverá "nombre" y no nom.

La unica solución que veo es que te crees tu propio analizador de consultas y armes una lista expresion/alias... aunque no entiendo el porque de esto.

Saludos.

roman 19-05-2005 18:59:39

Cita:

Empezado por jachguate
aunque no entiendo el porque de esto.

Yo tampoco. Si se requiere el nombre original entonces ¿para qué usar alias?

// Saludos

vtdeleon 19-05-2005 19:27:24

Saludos.
Cita:

Empezado por roman
Yo tampoco. Si se requiere el nombre original entonces ¿para qué usar alias?

Al mostrar un dbgrid con el nombre del campo nom, el usuario no entendera lo que quiere decir este campo, pero por ejemplo en una tabla tengo CODEMP, que yo lo entiendo como Codigo de Empleado pero en una consulta SQL lo pongo Select codemp as Codigo, nom as nombre.....;)

Este es el Por Qué.

roman 19-05-2005 19:34:14

Entonces no uses alias, simplemente cambia el título de las columnas del dbgrid para que tus usuarios le entiendan.

// Saludos

vtdeleon 19-05-2005 20:36:32

Saludo.

Jeje sabia que me ivan a decir eso:p

Esta formulario (frmbuscar) que contiene el query1, dbgrid... es creada (en forma modal) por otros formularios (dependiendo del caso). Cada uno de esos formulario requiere diferentes campo. Decidi hacerlo asi para no crear muchos formularios para un mismo proposito.

Ej: Tengo 4 formularios. Son frmempleado, frmdepartamentos, frmocupacion y frmbuscar.
A Excepcion del ultimo, cada uno de estos formulario tiene un boton el cual llama a frmbuscar (que es de consulta):

Código Delphi [-]
 Procedure Tfrmempleado.btBuscarClick....;{El formulario puede ser tambien Frmdepartamento o frmocupacion}
  begin
    frmbuscar:=Tfrmbuscar.create(self);
    frmbuscar.Campos:='codemp as Codigo, nom as nombre, apell As apellido';
    frmbuscar.tabla:='empleados'
    .....
    if frmbuscar.ShowModal= mrok then
      ...
      ...
  
    FreeAndNil(frmbuscar);
  end;
Y asi con los demas, solo cambiandole el campo y la tabla.
En frmbuscar:
Código Delphi [-]
procedure tfrmbuscar.FormActivate...;//o en FormShow
    begin
      query1.close
      with query1.sql do begin
        add('Select '+ Campos);
        add('from '+ tabla);
        ...
      end;
      query1.prepare;
      query1.open;
    end;
Al crear la consulta de forma que cada formulario pide campos diferentes, no puedo hacer lo que me indica Roman.

Gracias por el interes
No es el hilo indicado pero:
Por Otra parte Felicidades Roman, veo que hoy es tu cumplea~o. Muchas felicidades!!!

vtdeleon 19-05-2005 20:38:38

Saludos.
Cita:

Empezado por jachguate
La unica solución que veo es que te crees tu propio analizador de consultas y armes una lista expresion/alias...

Como hago esto?

roman 19-05-2005 21:04:40

Cita:

Empezado por vtdeleon
no puedo hacer lo que me indica Roman.

¡Ay! ¡No inventes! Se me hace que te gusta complicarte la vida :p

En tu btBuscarClick, así como asignas el nombre de la tabla y el campo, así también asigna el título de la columna y déjate de hacerte difícil la vida :D


Cita:

Empezado por vtdeleon
No es el hilo indicado pero:
Por Otra parte Felicidades Roman, veo que hoy es tu cumplea~o. Muchas felicidades!!!

Muchísimas gracias. Aunque he llegado a una edad en la que ya no sé si festejar o ponerme una "guarapeta" para olvidar. :D

// Saludos

vtdeleon 19-05-2005 21:36:14

Saludos
Cita:

Empezado por roman
¡Ay! ¡No inventes! Se me hace que te gusta complicarte la vida :p

Crei lo contrario, ya que utilizo el mismo forma para consultar.;) Lo complicado es la consulta :D
Cita:

Empezado por roman
En tu btBuscarClick, así como asignas el nombre de la tabla y el campo, así también asigna el título de la columna y déjate de hacerte difícil la vida :D

Ok, Sera asi
Cita:

Empezado por roman
Muchísimas gracias. Aunque he llegado a una edad en la que ya no sé si festejar o ponerme una "guarapeta" para olvidar. :D

Recuerda esto: Envejecer es Obligatorio, Madurar es Opcional!!

__hector 20-05-2005 01:23:07

Cita:

Empezado por vtdeleon
Saludos
... Recuerda esto: Envejecer es Obligatorio, Madurar es Opcional!!

me suena a promocion de algun whisky.

por otra parte, es imposible llegar al resultado de un campo a partir de un alias, pues un alias puede ser cualquier cosa: desde un campo de la tabla de la forma

select campo as alias from...

hasta una combinacion de campos de la forma

select campo1 + ' ' + campo2 as alias from...

o una constante como

select 0 as alias from....

o incluso, campos calculados, o cualquier cosa que se te ocurra

select left(campo1, 3) + CONVERT(varchar, campo2 * 0.13) + 'nosequecosa' as alias


La franja horaria es GMT +2. Ahora son las 05:48:53.

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