oRs:Find() ado en dos campos, sobre xbrowse, como?

Post Reply
User avatar
leandro
Posts: 1688
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia
Contact:

oRs:Find() ado en dos campos, sobre xbrowse, como?

Post by leandro »

Hola buenas noches para todos

Cuando hacemos una búsqueda sobre un recorset con el metodo find(), en un campo funciona correctamente.

Code: Select all | Expand

oBrwFt:goTop()
oRsFtr:Find("ll_consec="+alltrim(cFcEn))
oBrwFt:refresh()
 
Ahora nos surge la necesidad de buscar en _ a la vez, lo intentamos de la siguiente manera, pero sale error

Code: Select all | Expand

oBrwFt:goTop()
oRsFtr:Find("ll_consec="+alltrim(cFcEn)+" AND ll_docume="+alltrim(cFcDc))
oBrwFt:refresh()
 
Devuelve el siguiente error:

Code: Select all | Expand

Application
===========
   Path and name: C:\DLYMA\hymlyma.exe (32 bits)
   Size: 9,043,456 bytes
   Compiler version: xHarbour 1.3.0 Intl. (SimpLex) (Build 20231104)
   FiveWin  version: FWH 23.10
   C compiler version: Borland/Embarcadero C++ 7.7 (32-bit)
   Windows 8 64 Bits, version: 6.2, Build 9200 

   Time from start: 0 hours 0 mins 16 secs 
   Error occurred at: 18/01/2024, 20:59:27
   Error description: Error ADODB.RecordSet/6  DISP_E_UNKNOWNNAME: FIND
   Args:
     [   1] = C   ll_consec=60914 AND ll_docume=009

Stack Calls
===========
   Called from:  => TOLEAUTO:FIND( 0 )
   Called from: z:\prg\R32_fact.prg => SERVICIONOTARIAS( 15675 )
   Called from: z:\prg\R32_fact.prg => (b)FFACTURAS( 607 )
   Called from: .\source\classes\URLLINK.PRG => TURLLINK:LBUTTONDOWN( 180 )
   Called from: .\source\classes\CONTROL.PRG => TCONTROL:HANDLEEVENT( 1848 )
   Called from: .\source\classes\URLLINK.PRG => TURLLINK:HANDLEEVENT( 168 )
   Called from: .\source\classes\WINDOW.PRG => _FWH( 3651 )
   Called from:  => WINRUN( 0 )
   Called from: .\source\classes\WINDOW.PRG => TMDIFRAME:ACTIVATE( 1113 )
   Called from: z:\prg\R32_menu.prg => VTNAPRINCIPAL( 895 )
   Called from: z:\prg\R32_menu.prg => MAIN( 141 )
 
Alguien sabe como se debe hacer la busqueda sobre un recorset en _?
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Embarcadero C++ 7.60 for Win32 ] [ FiveWin 23.07 ] [ xHarbour 1.3.0 Intl. (SimpLex) (Build 20230914) ]
User avatar
Armando
Posts: 3249
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México
Contact:

Re: oRs:Find() ado en dos campos, sobre xbrowse, como?

Post by Armando »

Leandro:

Podrías hacerlo desde el SELECT con la clausula LIKE, no se si te sirva?

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
cmsoft
Posts: 1293
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: oRs:Find() ado en dos campos, sobre xbrowse, como?

Post by cmsoft »

Leandro:
Sin conocer ADO te consulto, de que tipo de datos son cFcEn y cFcDc?
Te pregunto por si incluyes en ellas las comillas
User avatar
JoseAlvarez
Posts: 807
Joined: Sun Nov 09, 2014 5:01 pm

Re: oRs:Find() ado en dos campos, sobre xbrowse, como?

Post by JoseAlvarez »

leandro,

Yo hago las busquedas por 2 o mas campos asi:

Code: Select all | Expand

cQuery := "SELECT * from "+cTabla+" WHERE CONCAT (descripcion, codigo_fabrica)  LIKE '%"+cSeek+"%'  ORDER BY descripcion;"
la variable cSeek es un input donde el usuario ingresa bien sea la descipcion o el codigo a buscar.
creo que puede servirte.
"Los errores en programación, siempre están entre la silla y el teclado..."

Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin

Carora, Estado Lara, Venezuela.
User avatar
leandro
Posts: 1688
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia
Contact:

Re: oRs:Find() ado en dos campos, sobre xbrowse, como?

Post by leandro »

Armando y José, muchas gracias por las respuestas, pero necesitamos hacer la búsqueda sobre el recorset, ya que luego de eso se genera una acción que crea un objeto con base en la información del row, específicamente el que esta seleccionado.

Cesar
Son el código de comprobante y el numero de una factura. Ya también probamos colocándolo dentro de comillas pero devuelve el mismo error.
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Embarcadero C++ 7.60 for Win32 ] [ FiveWin 23.07 ] [ xHarbour 1.3.0 Intl. (SimpLex) (Build 20230914) ]
User avatar
leandro
Posts: 1688
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia
Contact:

Re: oRs:Find() ado en dos campos, sobre xbrowse, como?

Post by leandro »

De momento encontramos la solución, para el proceso nuevo, buscando sobre el campo del id de la tabla de las facturas.

Pero la verdad es que nos gustaría también incluir la búsqueda por los _, para hacer otro tipo de procesos.
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Embarcadero C++ 7.60 for Win32 ] [ FiveWin 23.07 ] [ xHarbour 1.3.0 Intl. (SimpLex) (Build 20230914) ]
audisys
Posts: 49
Joined: Wed Apr 18, 2007 6:01 pm
Location: Cartagena - Colombia

Re: oRs:Find() ado en dos campos, sobre xbrowse, como?

Post by audisys »

Hola Leandro,

Se me ocurre que conviertas a un Hash el recordset
algo así, esta hecho al vuelo no se si funciona.

Code: Select all | Expand

  cBusqueda:="ll_consec="+alltrim(cFcEn)
  hhash    :={ => }
  
  oRs:MoveFirst() /// Voy al primero
  
 for i=0 to oRs:fields:count-1
     cCampo:=oRs:fields(i):name
     uValue:=oRs:fields(i):value
     hhash[cCampo]:=uValue 
 next i

   Msginfo( hhash[cBusqueda]) )
 
José David Angulo
Auditoria y Sitemas Ltda.
Cartagena Colombia
User avatar
Maurizio
Posts: 826
Joined: Mon Oct 10, 2005 1:29 pm
Contact:

Re: oRs:Find() ado en dos campos, sobre xbrowse, como?

Post by Maurizio »

Hello
ors:Find() only works with one field.

If I need more fields use the Filter function

oRs:Filter = "ll_consec="+alltrim(cFcEn)+" AND ll_docume="+alltrim(cFcDc)
IF oRs:RecordCount() == 0

ENDIF
oRs:Filter := "
Maurizio "
Post Reply