Page 1 of 1

ado, wbrowse duda

Posted: Mon Dec 04, 2006 6:20 pm
by tomafa
tengo la siguiente uregencia, quiero saber si se puede hacer una busqueda como lo hacia con dbf, cuando este tecleando las letras se posesione en el registo correspondiente, eso se puede hacer con ado, uso sql server

gracias

Posted: Mon Dec 04, 2006 7:09 pm
by Biel EA6DD
Si, utilizando el metodo Find del recordset. Yo lo tengo implementado con xBrowse, pero debe de ser igual para wBrowse.

Posted: Mon Dec 04, 2006 8:17 pm
by tomafa
y tendras un ejemplo que me puedas mostrar por favor

Posted: Tue Dec 05, 2006 8:46 am
by Rochinha
Amigo

Yo desarollo una lib con acesso con ADO mira lo exemplo no link:

http://www.shoppmarketing.com/forum/hbado.zip

funciona con mysql sql_server firebird access xls e xml nativamente

Posted: Tue Dec 05, 2006 8:48 am
by Biel EA6DD
Aqui tienes el ejemplo, con xBrowse se tiene que definir un say que es el que va visualizando la cadena buscada, y un codeblock que busque y devuelva falso o verdadero dependiendo de si ha encontrado o no.

Code: Select all

oBrw := TXBrowse():New(oWnd)
oBrw:SetAdo(oRs)
oBrw:CreateFromCode()
oWnd:oClient := oBrw

oBrw:bSeek               := { | c | Busca(c,oRs) }
oBrw:oSeek               := oSay

//---------------------------------
STATIC FUNCTION Busca(cBuscar,oRs)
   LOCAL nLen:=Len(cBuscar)
   STATIC nLenAnt
   DEFAULT nLenAnt:=0
   IF Len(cBuscar)>1
      IF(nLenAnt>nLen,oRs:MoveFirst(),)
      oRs:Find( "Nombre LIKE '"+cBuscar+"*'",,1)
   ELSE
      oRs:MoveFirst()
      IF !Empty(cBuscar)
         oRs:Find( "Nombre LIKE '"+cBuscar+"*'",,1)
      ENDIF
   ENDIF
   nLenAnt:=nLen
RETURN !(oRs:Eof.OR.oRs:Bof)