PDA

Ver la Versión Completa : Recuperar el índice de un field de una consulta SQL


santiago14
26-01-2021, 13:32:12
Buenas, necesito recuperar la posición de un campo dentro de una consulta SQL.

sql.add('Select t.Nombre_tit AS NombreTitulo, t.Direccion as Direccion ');
SQL.Add('From titulos_sec t ');
sql.Add('Where t.Cod_sec = :Cod_sec ');
SQL.Add('and t.estado_tit = ''A'' ');
SQL.Add('Order by t.nombre_tit asc');
ParamByName('cod_sec').AsInteger:=cod_sec;

Quiero que recupere la posición de "NombreTitulo", que tendría que ser 0, ¿o 1?

Esto es DBExpress, el que viene con Delphi XE5. No estoy pudiendo hacer esto. Gracias miles.



Santiago.

kuan-yiu
26-01-2021, 13:46:39
Fields[0] es la primera columna de la query tal y como la hayas definido.

santiago14
26-01-2021, 14:00:03
Fields[0] es la primera columna de la query tal y como la hayas definido.
Claro, esto devuelve el contenido de lo que está en la posición "0". Yo quiero que me devuelva el "0", al revés. Que me diga cuál es la posición dentro de la consulta de ese campo.

¿Se entiende?

santiago14
26-01-2021, 14:07:36
Buenas, necesito recuperar la posición de un campo dentro de una consulta SQL.

sql.add('Select t.Nombre_tit AS NombreTitulo, t.Direccion as Direccion ');
SQL.Add('From titulos_sec t ');
sql.Add('Where t.Cod_sec = :Cod_sec ');
SQL.Add('and t.estado_tit = ''A'' ');
SQL.Add('Order by t.nombre_tit asc');
ParamByName('cod_sec').AsInteger:=cod_sec;

Quiero que recupere la posición de "NombreTitulo", que tendría que ser 0, ¿o 1?

Esto es DBExpress, el que viene con Delphi XE5. No estoy pudiendo hacer esto. Gracias miles.



Santiago.

Es así.


ConsultaExpedientes.Fields.IndexOf(ConsultaExpedientes.FieldByName('NombreTitulo'))


Devuelve la posición del campo que se llama "NombreTitulo"

cloayza
27-01-2021, 01:35:27
Estimado Santiago14

Creo que lo que busca lo obtiene con la propiedad FieldNo

Aquí (http://docwiki.embarcadero.com/Libraries/Sydney/en/Data.DB.TField.FieldNo) algo de información...


ConsultaExpedientes.FieldByName('NombreTitulo').FieldNo;


Saludos cordiales