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.
Foro público de Xailer en español
XeviCOMAS
Mensajes: 586 Registrado: Sab Mar 12, 2011 8:16 pm
Mensaje
por XeviCOMAS » Jue May 23, 2019 12:56 pm
Siguiendo con el Locate, después del mensaje que ya postee y que no se me contestó, otro detalle que si que me es un problema, es cuando en ese Locate de un TDataSet, más concretamente un TDbfDataSet, si el campo a localizar contiene alguna comilla simple, lanza error.
texto a localizar A D'
Código: Seleccionar todo
****************************** Registre d'errors ******************************
Exe: \\Server10\c\@Soft\Compta\CWin.exe
Version: 4.19.5.15
Build: 15
User name: Xevi
Computer name: HPPORTATILI7
Data: 23/05/2019
Hora: 12:50:24
Memòria lliure: 2097151
Àrea actual: 1
-------------------------- Informació del compilador --------------------------
Versió Xailer: Xailer 6.0.4
Compilador: Harbour 3.2.0dev (r1803161710)
Compilador C/C++: MinGW GNU C 7.3 (32-bit)
Plataforma: Windows 10 10.0
----------------------- Informació detallada del error ------------------------
Subsistema: BASE
Codi d'error: 1449
Estat: .F.
Descripció: Error de sintaxis
Operació: &
Arguments: [ 1] = Tipus: C Valor: {||DESCRIPCIO >= 'A D''}
Fitxer:
Codi error SO: 0
Pila de trucades:
TDBFDATASET:LOCATE (516)
XRECERCA (365)
TMDIFORM:EDITRECERCACHANGE (352)
TMASKEDIT:ONCHANGE (0)
(b)XEDIT (95)
TEDIT:CHANGE (0)
(b)XMASKEDIT (66)
TMASKEDIT:CHANGE (0)
TMASKEDIT:COMMAND (166)
TSCROLLINGWINCONTROL:WMCOMMAND (275)
TMDIFORM:WMCOMMAND (952)
SENDMESSAGE (0)
(b)XCONTROL (101)
TMASKEDIT:SENDMSG (0)
TMASKEDIT:INPUT (614)
TMASKEDIT:WMCHAR (104)
RUNFORM (0)
TAPPLICATION:RUN (289)
MAIN (23)
------------------- Informació detallada d'àrees de treball -------------------
Àrea: 1
Àlies: CMAEC
Registre: 118
Filtre:
Relació:
Ordre de l'índex: 10
Clau activa: 10
¿Cómo lo haceis en estos casos???
¿Alguna función como para un TSQLTable como StrSQL(cTexto) ???
Gracias por vuestro tiempo
Un Saludo,
Xevi.
XeviCOMAS
Mensajes: 586 Registrado: Sab Mar 12, 2011 8:16 pm
Mensaje
por XeviCOMAS » Jue May 23, 2019 4:56 pm
He probado con la función StrSQLite(), pero no resuelve el problema.
Código: Seleccionar todo
****************************** Registre d'errors ******************************
Exe: D:\XeviXailer (local)\GWin\GWin.exe
Version: 4.19.5.22
Build: 22
User name: Xevi
Computer name: HPPORTATILI7
Data: 23/05/2019
Hora: 16:55:40
Memòria lliure: 2097151
Àrea actual: 1
-------------------------- Informació del compilador --------------------------
Versió Xailer: Xailer 6.0.4
Compilador: Harbour 3.2.0dev (r1803161710)
Compilador C/C++: MinGW GNU C 7.3 (32-bit)
Plataforma: Windows 10 10.0
----------------------- Informació detallada del error ------------------------
Subsistema: BASE
Codi d'error: 1449
Estat: .F.
Descripció: Error de sintaxis
Operació: &
Arguments: [ 1] = Tipus: C Valor: {||NOM >= 'D'''}
Fitxer:
Codi error SO: 0
Pila de trucades:
TDBFDATASET:LOCATE (516)
EDITRECERCACHANGECLIENTS (279)
TFRMCLIENTS:EDITRECERCACHANGE (264)
TMASKEDIT:ONCHANGE (0)
(b)XEDIT (95)
TEDIT:CHANGE (0)
(b)XMASKEDIT (66)
TMASKEDIT:CHANGE (0)
TMASKEDIT:COMMAND (166)
TSCROLLINGWINCONTROL:WMCOMMAND (275)
TFRMCLIENTS:WMCOMMAND (952)
SENDMESSAGE (0)
(b)XCONTROL (101)
TMASKEDIT:SENDMSG (0)
TMASKEDIT:INPUT (614)
TMASKEDIT:WMCHAR (104)
RUNFORM (0)
TAPPLICATION:RUN (289)
MAIN (24)
------------------- Informació detallada d'àrees de treball -------------------
Àrea: 1
Àlies: CLIEN
Registre: 3003
Filtre:
Relació:
Ordre de l'índex: 4
Clau activa: 4
Un Saludo,
Xevi.
XeviCOMAS
Mensajes: 586 Registrado: Sab Mar 12, 2011 8:16 pm
Mensaje
por XeviCOMAS » Jue May 23, 2019 5:31 pm
:Locate( "MICAMPO = '" + xStrDBF( "Carte d'Or" ) + "'" )
He hecho esta funcioncilla
Código: Seleccionar todo
FUNCTION xStrDBF( cText )
RETURN StrTran( cText, "'", ['+"'"+'] )
Y está funcionando correctamente!!!
Igual a alguno le puede servir.
Gracias por vuestro tiempo.
Un Saludo,
Xevi.