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
Ariel
Posts: 5
Joined: Tue Nov 26, 2019 12:28 pm

TDBBrowse y lAutoSeek

Postby Ariel » Sat Nov 30, 2019 3:27 pm

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!
User avatar
ignacio
Site Admin
Posts: 8575
Joined: Mon Apr 06, 2015 8:00 pm
Location: Madrid, Spain
Contact:

Re: TDBBrowse y lAutoSeek

Postby ignacio » Mon Dec 02, 2019 5:17 pm

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]
http://www.xailer.com
http://www.xailer.info
Ariel
Posts: 5
Joined: Tue Nov 26, 2019 12:28 pm

Re: TDBBrowse y lAutoSeek

Postby Ariel » Thu Dec 05, 2019 2:43 pm

Ignacio,

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

Return to “Spanish”