In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

TDBBrowse y lAutoSeek

Foro de Xailer profesional en español
Responder
Ariel
Mensajes: 26
Registrado: Mar Nov 26, 2019 12:28 pm

TDBBrowse y lAutoSeek

Mensaje por Ariel »

Buenos dias,

Tengo un TDBBrowse conectado a un dataset de clientes con el siguiente formato :

:cSelect:= Select clientes.*, ifnull(clientes.suspendido,0) AS suspendido, Trim(Concat(ifnull(localidades.nombre,''),' ',ifnull(provincias.nombre,'')) ) AS cLocalidad,
ifnull(tipoderesponsable.nombrer,'') AS cFiscal, ifnull(vendedores.codven,0) AS nVendedor, ifnull(comopaga.nombre,'') AS cPaga, "+;
ifnull(categorias.nombre,'') AS cCategoria
from clientes
LEFT JOIN localidades ON clientes.idlocalidad=localidades.id
LEFT JOIN provincias ON localidades.idprovincia=provincias.id
LEFT JOIN tipoderesponsable ON clientes.idfiscal=tipoderesponsable.id
LEFT JOIN vendedores ON clientes.idvendedor=vendedores.id
LEFT JOIN categorias ON clientes.idcategoria=categorias.id
LEFT JOIN comopaga ON clientes.idpaga=comopaga.id
ORDER BY clientes.nombre;

todo bien, muestra la info correcta, pero al digitar teclas (sobre el browse) para localizar un cliente me tira el siguiente error :

Date: 30-11-2019 11:26:24 User: Administrador

MariaDB Error:

select lista_id from (select IF( nombre LIKE 'M%', 1, 0) as lista_id, clientes.*, ifnull(clientes.suspendido,0) AS suspendido, Trim(Concat(ifnull(localidades.nombre,''),' ',ifnull(provincias.nombre,'')) ) AS cLocalidad, ifnull(tipoderesponsable.nombrer,'') AS cFiscal, ifnull(vendedores.codven,0) AS nVendedor, ifnull(comopaga.nombre,'') AS cPaga, ifnull(categorias.nombre,'') AS cCategoria FROM clientes LEFT JOIN localidades ON clientes.idlocalidad=localidades.id LEFT JOIN provincias ON localidades.idprovincia=provincias.id LEFT JOIN tipoderesponsable ON clientes.idfiscal=tipoderesponsable.id LEFT JOIN vendedores ON clientes.idvendedor=vendedores.id LEFT JOIN categorias ON clientes.idcategoria=categorias.id LEFT JOIN comopaga ON clientes.idpaga=comopaga.id WHERE ifnull(clientes.baja,'*')='*' ORDER BY clientes.nombre,clientes.id ) as tmp_sql

Column 'nombre' in field list is ambiguous [# 1052]
En procedimiento: TDBBROWSE:AUTOSEEK línea: 1444

Called from XMARIADBDATASOURCE:EXECUTE(0)
Called from TMARIADBDATASOURCE:EXECUTE(5044)
Called from TMARIADBRECORDS:LOCATE(4100)
Called from TSQLQUERY:LOCATE(813)
Called from TDBBROWSE:AUTOSEEK(1444)
Called from TDBBROWSE:ONSEEK(0)
Called from TDBBROWSE:SEEK(613)
Called from XBROWSE:WMCHAR(2433)
Called from TDBBROWSE:WMCHAR(629)
Called from RUNFORM(0)
Called from TAPPLICATION:RUN(289)
Called from MAIN(16)


:lAutoSeek esta en .t.

Interpreto que falta el alias de la tabla antes del campo, pero no sé como resolverlo.

Gracias!
Avatar de Usuario
ignacio
Site Admin
Mensajes: 8840
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Re: TDBBrowse y lAutoSeek

Mensaje por ignacio »

Buenos días,

El motivo de ese error es porque hay más de una tabla con el nombre de campo 'Nombre' y en el proceso de filtrado Xailer y debido a la complejidad de la SELECT, Xailer no es capaz de construir la cadena de filtrado correctamente. Debido a que con esa complejidad es imposible que pueda editar el recodset, le recomiendo que simplemente utilice un TMemDataset. En este caso la ordenación y filtrado se hace en local sin tener que repetir la consulta y es infinitamente más rápido.

Una recomendación: Si no va a editar el recordset, SIEMPRE utilice un TMemDataset.

Saludos
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Ariel
Mensajes: 26
Registrado: Mar Nov 26, 2019 12:28 pm

Re: TDBBrowse y lAutoSeek

Mensaje por Ariel »

Ignacio,

gracias por responder, supuse que venian por ahi los tiros, voy a probarlo como dices. gracias
Responder