Tdolphin: se bloquea seek al cambiar el orden de Query

Re: Tdolphin: se bloquea seek al cambiar el orden de Query

Postby jrestojeda » Tue Aug 06, 2013 7:07 pm

TecniSoftware wrote:
Biel EA6DD wrote:
Aguien más con el mismo problema puede probarlo y confirmar que funciona.


Grande! hice el cambio a Set_MyLang( "es_ES" ) y ya no se cuelga!

Muchos saludos


Ale...
Estabas vivo?? jejeje Hace mil que no se te veía che...
Urgente hay que tirar algo en la parrilla!!!
Ojeda Esteban Eduardo.
Buenos Aires - Argentina.
FWH - PellesC - DBF/CDX - ADS - Gloriosos .Bat - MySql - C# .net - FastReport
Skype: jreduojeda
User avatar
jrestojeda
 
Posts: 601
Joined: Wed Jul 04, 2007 3:51 pm
Location: Buenos Aires - Argentina

Re: Tdolphin: se bloquea seek al cambiar el orden de Query

Postby Daniel Garcia-Gil » Tue Aug 06, 2013 7:34 pm

Biel EA6DD wrote:
sysctrl2 wrote:Por cierto, alguien puede explicar para que es esa funcion?
Set_MyLang( "esp" )

saludos..

Por lo que he podido ver sirve para definir la configruación regional(Locale Support), y en concreto para la comparación de cadenas, pero el master Daniel nos lo concretará.


ya has dado la respuesta... :-D

bien que se soluciono el problema....
User avatar
Daniel Garcia-Gil
 
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita

Re: Tdolphin: se bloquea seek al cambiar el orden de Query

Postby cmsoft » Wed Aug 07, 2013 2:05 am

Biel:
Buenisima tu solución!!! Muchisimas gracias, funciona perfecto!!!
Y no solo eso!! Tambien soluciona el problema que busque mucho tiempo la solución que indiqué en éste post http://forums.fivetechsupport.com/viewtopic.php?f=6&t=25941&p=149472&hilit=BUG+BUSQUEDA#p141971 donde no hacía bien la búsqueda incremental en palabras comenzadas con CH o CI!
Muchisimas gracias!!!
User avatar
cmsoft
 
Posts: 1291
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: Tdolphin: se bloquea seek al cambiar el orden de Query

Postby Biel EA6DD » Wed Aug 07, 2013 2:27 pm

Bueno, me alegro de que se solucionara el problema, y de paso no solo uno sino dos :D .

El cambio es mínimo, pero la verdad es que me ha llevado un rato (largo)dar con ello. Primero fui tirando del hilo en xBrowse, al no enonctrar nada segui por tDolphin y al final dimos con el problema.
Saludos desde Mallorca
Biel Maimó
http://bielsys.blogspot.com/
User avatar
Biel EA6DD
 
Posts: 682
Joined: Tue Feb 14, 2006 9:48 am
Location: Mallorca

Re: Tdolphin: se bloquea seek al cambiar el orden de Query

Postby TecniSoftware » Wed Aug 07, 2013 3:22 pm

Biel EA6DD wrote:Bueno, me alegro de que se solucionara el problema, y de paso no solo uno sino dos :D .

El cambio es mínimo, pero la verdad es que me ha llevado un rato (largo)dar con ello. Primero fui tirando del hilo en xBrowse, al no enonctrar nada segui por tDolphin y al final dimos con el problema.


Te funciona bien la busqueda incremental con xbrowse y los campos numericos?
Podrias probar este ejemplo? es una tabla en el servidor de Daniel, el campo es ID y es autoincremental.

Intenta buscar los siguientes numeros a ver si te funciona correctamente: 1525, 6617, 7102 y 8819

Code: Select all  Expand view  RUN
#include "fivewin.ch"
#include "xbrowse.ch"
#include "tdolphin.ch"

FUNCTION Main()

   LOCAL oServer, oDlg, oQry, oBrw

   D_SetCaseSensitive( .T. )
   Set_MyLang( "es_ES" )

   IF ( oServer := ConnectTo() ) == NIL
      RETURN NIL
   ENDIF

   oQry = oServer:Query( "SELECT id, first, last FROM clientes_copy3 ORDER BY first" )

   DEFINE DIALOG oDlg  SIZE 565, 480

   @ 30, 10 XBROWSE oBrw OBJECT oQry PIXEL SIZE 260, 200 AUTOCOLS AUTOSORT

   @ 10,10 say oBrw:oSeek prompt "" PIXEL SIZE 300, 15

   oBrw:CreateFromCode()

   ACTIVATE DIALOG oDlg CENTERED

RETURN NIL

#include "connto.prg"
#include "setbrw.prg"
Alejandro Cebolido
Buenos Aires, Argentina
User avatar
TecniSoftware
 
Posts: 235
Joined: Fri Oct 28, 2005 6:29 pm
Location: Quilmes, Buenos Aires, Argentina

Re: Tdolphin: se bloquea seek al cambiar el orden de Query

Postby Biel EA6DD » Wed Aug 07, 2013 5:22 pm

Hola Alejandro, pues no no funciona como es esperado. En campos numéricos parece no funcionar bien.
Creo que el problema está en xBrowse, prueba el siguiente código en el que incluyo una función de busqueda con unos pequeños cambios con referencia a la usada en xBrowse.
Code: Select all  Expand view  RUN


#include "fivewin.ch"
#include "xbrowse.ch"
#include "tdolphin.ch"

FUNCTION Main()

   LOCAL oServer, oDlg, oQry, oBrw

   D_SetCaseSensitive( .T. )
   Set_MyLang( "es_ES" )

   IF ( oServer := ConnectTo() ) == NIL
      RETURN NIL
   ENDIF

   oQry = oServer:Query( "SELECT id, first, last FROM clientes_copy3 ORDER BY first" )

   DEFINE DIALOG oDlg  SIZE 565, 480

   @ 30, 10 XBROWSE oBrw OBJECT oQry PIXEL SIZE 260, 200 AUTOCOLS AUTOSORT
   oBrw:bSeek  := { | c | Prueba( c, oBrw ) }
   @ 10,10 say oBrw:oSeek prompt "" PIXEL SIZE 300, 15

   oBrw:CreateFromCode()

   ACTIVATE DIALOG oDlg CENTERED

RETURN NIL
//--------------------------------------------
static FUNCTION Prueba( c, oBrw, cQryWhere )

   local oQry        := oBrw:oMySql
   local nStart
   local uData, nNum, lRet
   local cSortOrder

   static aLastRec := {}

   nNum = AScan( oBrw:aCols, {| o | !Empty( o:cOrder ) } )

   if nNum < 1
      RETURN .f.
   endif

   cSortOrder = oBrw:aCols[ nNum ]:cSortOrder

   if Len( c ) == 1
      aLastRec    := {}
   endif

   IF Len( aLastRec ) < Len( c )
      IF Len( aLastRec ) == 0
         nStart = 1
      ELSE
         nStart = oQry:RecNo()
      ENDIF
      AAdd( aLastRec, nStart )
   ELSE
      ASize( aLastRec, Len( c ) - 1 )
      IF Len( aLastRec ) == 0
         nStart = 1
      ELSE
         nStart = ATail( aLastRec )
      ENDIF
   ENDIF

   lRet  := ( oQry:Seek( c, cSortOrder, nStart - 1, oQry:LastRec(),!oQry:FieldType( cSortorder  )=='N', .T. ) != 0 )

return lRet
#include "connto.prg"
#include "setbrw.prg"

 
Saludos desde Mallorca
Biel Maimó
http://bielsys.blogspot.com/
User avatar
Biel EA6DD
 
Posts: 682
Joined: Tue Feb 14, 2006 9:48 am
Location: Mallorca

Re: Tdolphin: se bloquea seek al cambiar el orden de Query

Postby TecniSoftware » Wed Aug 07, 2013 6:34 pm

Biel EA6DD wrote:Hola Alejandro, pues no no funciona como es esperado. En campos numéricos parece no funcionar bien.
Creo que el problema está en xBrowse, prueba el siguiente código en el que incluyo una función de busqueda con unos pequeños cambios con referencia a la usada en xBrowse.


Veo que llegaste a la misma conclusión, de que el parametro lSoft en la llamada a Seek de TDolphin debe ser .F. para campos numericos y .F. para los demas tipos.
Habia llegado a esto pero hasta que no encotaste la solucion del problema Set_MyLang( "es_ES" ), aunque cambiara ese parametro, se seguia colgando y no llegabamos estabamos empantanados, finalmente han sido casi 3 parjaros del mismo tiro.

Habrá que ver si Daniel le pega una mirada a esto y si le da el ok definitivo para esta solución la puedan incluir en el fuente de xbrowse.prg en un futuro.

Muchos saludos
Alejandro Cebolido
Buenos Aires, Argentina
User avatar
TecniSoftware
 
Posts: 235
Joined: Fri Oct 28, 2005 6:29 pm
Location: Quilmes, Buenos Aires, Argentina

Previous

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 37 guests