FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Busquedas con base de datos en Access y ADORDD
Posts: 396
Joined: Tue Mar 18, 2008 09:41 PM
Busquedas con base de datos en Access y ADORDD
Posted: Mon Apr 07, 2008 08:45 PM

Hola,

Estoy trabajando con una base de datos en access que la abro así:

REQUEST ADORDD
USE datos.mdb VIA "ADORDD" TABLE "clientes"

BROW()

Pero ahora quiero realizar una busqueda por un campo.

¿hay que acceder al campo clave o hay que indexar como se hacia con dbf?
La verdad es que estoyu algo perdido.

:?:cry:

Javier,

FWH 8.04 2008
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Busquedas con base de datos en Access y ADORDD
Posted: Mon Apr 07, 2008 08:56 PM

Javier,

Prueba a usar LOCATE como se usa con las DBFs tradicionales (cuando no usamos índices).

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 396
Joined: Tue Mar 18, 2008 09:41 PM
Probando con LOCATE
Posted: Tue Apr 08, 2008 01:29 PM

Antonio, he probado con LOCATE, pero siempre me devuelve falso:

USE DATABASE\presugen.mdb VIA "ADORDD" TABLE "clientes" ALIAS "CLIENTES"

CLIENTES->(DbGoTop())
LOCATE FOR CC="1452"
lVal := CLIENTES->(Found())
MsgAlert( lVal )

El valor 1452, existe y el campo cc es numerico.

Javier,

FWH 8.04 2008
Posts: 582
Joined: Fri Oct 07, 2005 02:17 PM
Busquedas con base de datos en Access y ADORDD
Posted: Tue Apr 08, 2008 01:53 PM

Creo que en el caso de busqueda de valores numericos debes omitir las comillas, solo busca el numero
Espero funcione

Enrrique Vertiz Pitta

Lima-Peru

xHb 1.23.1026X, Fwh 25.01, BCC74, MySQL 8.0.X, SQLLIB 1.9m
Posts: 396
Joined: Tue Mar 18, 2008 09:41 PM
Busquedas con base de datos en Access y ADORDD
Posted: Tue Apr 08, 2008 07:17 PM

Curioso...

He hecho la siguiente prueba.
He puesto un RecNo() antes del locate y otro despues.

El primero, me muestra un 1 (logico pues antes he hecho un DbGoTop())
Despues de locate, me muestra un 2(que es el registro de la busqueda)

La base de datos tiene 5 registros, por lo que no hay posibilidad de que fuera un EoF()

Sin envargo, la funcion Found() me sigue devolviendo .F. en cualquier caso.

Alguna pista??? :shock:

Javier,

FWH 8.04 2008
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Busquedas con base de datos en Access y ADORDD
Posted: Tue Apr 08, 2008 08:08 PM
Javier,

Hay que añadir Found() en ADORDD.prg de la siguiente manera:
...
#define WA_FOUND     15

#define WA_SIZE      15
...
static function ADO_LOCATE( nWA, lContinue )

   local aWAData    := USRRDD_AREADATA( nWA )
   local oRecordSet := aWAData[ WA_RECORDSET ]

   oRecordSet:Find( aWAData[ WA_SCOPEINFO ][ UR_SI_CFOR ], If( lContinue, 1, 0 ) )
   aWAData[ WA_FOUND ] = ! oRecordSet:EOF
   aWAData[ WA_EOF ] = oRecordSet:EOF

return SUCCESS
...
static function ADO_FOUND( nWA, lFound )

   local aWAData := USRRDD_AREADATA( nWA )

   lFound = aWAData[ WA_FOUND ]

return SUCCESS
...
   aAdoFunc[ UR_FOUND ]        := ( @ADO_FOUND() )

Pruébalo y me comentas. Si te resulta lioso, envíame por email (como ZIP) el fichero adordd.prg que estás usando y lo modificamos aqui y te lo volvemos a enviar. Gracias
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 396
Joined: Tue Mar 18, 2008 09:41 PM
Busquedas con base de datos en Access y ADORDD
Posted: Tue Apr 08, 2008 08:37 PM

Ahora SI devuelve .T. o .F.
Ahora lo encuentra.

Gracias Antonio.
De paso he vuelto a usar el TLIB.EXE que lo tenia olvidado. :wink:

Javier,

FWH 8.04 2008
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Busquedas con base de datos en Access y ADORDD
Posted: Tue Apr 08, 2008 09:25 PM

bien! :-)

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 396
Joined: Tue Mar 18, 2008 09:41 PM
Busquedas con base de datos en Access y ADORDD
Posted: Wed Apr 09, 2008 09:04 PM

Hola Antonio,

Veo que si hago la busqueda con la siguiente sintaxis:

LOCATE FOR CLIENTES->CC = 1001

Me devuelve el siguiente error:

He ido al codigo fuente y he visto la linea 592, pero no se como meterle mano.Parece un conflicto con el uso del area de trabajo o alias.

Una ayudita?

Application

Path and name: C:\FWH\bin\g.exe (32 bits)
Size: 1,188,864 bytes
Time from start: 0 hours 0 mins 2 secs
Error occurred at: 04/09/08, 23:00:01
Error description: Error ADODB.Recordset/6 DISP_E_UNKNOWNNAME: FIND
Args:
[ 1] = C CLIENTES->CC = 1001
[ 2] = N 0

Stack Calls

Called from: => TOLEAUTO:FIND(0)
Called from: adordd.prg => ADO_LOCATE(592)
Called from: => __DBLOCATE(0)
Called from: G.prg => FBUSCACC(76)
Called from: G.prg => (b)FESTUDIOECO(51)
Called from: => TGET:LVALID(0)
Called from: => TGET:FWLOSTFOCUS(0)
Called from: => TCONTROL:HANDLEEVENT(0)
Called from: => TGET:HANDLEEVENT(0)
Called from: .\source\classes\WINDOW.PRG => _FWH(0)
Called from: => SYSREFRESH(0)
Called from: => TCONTROL:KEYCHAR(0)
Called from: => TGET:KEYCHAR(0)
Called from: => TWINDOW:HANDLEEVENT(0)
Called from: => TCONTROL:HANDLEEVENT(0)
Called from: => TGET:HANDLEEVENT(0)
Called from: .\source\classes\WINDOW.PRG => _FWH(0)
Called from: => DIALOGBOX(0)
Called from: => TDIALOG:ACTIVATE(0)
Called from: G.prg => FESTUDIOECO(56)
Called from: G.prg => (b)MAIN(27)
Called from: => TBTNBMP:CLICK(0)
Called from: => TBTNBMP:LBUTTONUP(0)
Called from: => TWINDOW:HANDLEEVENT(0)
Called from: => TCONTROL:HANDLEEVENT(0)
Called from: => TBTNBMP:HANDLEEVENT(0)
Called from: .\source\classes\WINDOW.PRG => _FWH(0)
Called from: => WINRUN(0)
Called from: => TWINDOW:ACTIVATE(0)
Called from: G.prg => MAIN(36)

System

CPU type: Intel(R) Core(TM)2 Duo CPU E6550 @ 2.33GHz 2333 Mhz
Hardware memory: 2048 megs

Free System resources: 90 %
GDI resources: 90 %
User resources: 90 %

Compiler version: Harbour devel build 1.1-1 Intl.
Windows version: 5.1, Build 2600 Service Pack 2

Windows total applications running: 29
1 M
2 Default IME
3 Menú desplegable de Autosugerir
4 CiceroUIWndFrame
5 SysFader
6 TF_FloatingLangBar_WndTitle
7 Dialog
8 PresuGen, apliación para la generación y cálculo de presupuestos
9 MS-DOS
10 Java Sys Tray
11 theAwtToolkitWindow
12 Connections Tray
13 MCI command handling window
14 Client:{A534759F-A612-4cf7-BA15-D022203D2DD1}
15 Acrobat IEHelper
16 DDE Server Window
17 Server:{A534759F-A612-4cf7-BA15-D022203D2DD1}
18 SMax4PNP
19 Medidor de energía
20 MS_WebcheckMonitor
21 MediaCenter
22 McAgent_Main_Hidden_Window
23 AEBalloonTip
24 Vtune
25 SoundMax4
26 NVSVCPMMWindowClass
27 GDI+ Window
28 ::. Santander .:: - Windows Internet Explorer
29 Program Manager

Variables in use

Procedure Type Value
==========================
TOLEAUTO:FIND
Param 1: C "CLIENTES->CC = 1001"
Param 2: N 0
Local 1: C "ADODB.Recordset"
Local 2: N 0
ADO_LOCATE
Param 1: N 1
Param 2: L .F.
Local 1: A Len: 15
Local 2: O Class: TOLEAUTO
__DBLOCATE
Param 1: B {|| ... }
Param 2: U
Param 3: U
Param 4: U
Param 5: L .F.
FBUSCACC
Param 1: N 5
Local 1: U
(b)FESTUDIOECO
Param 1: O Class: TGET
TGET:LVALID
Local 1: O Class: TGET
Local 2: L .T.
TGET:FWLOSTFOCUS
Param 1: N 721504
Local 1: O Class: TGET
Local 2: U
Local 3: U
TCONTROL:HANDLEEVENT
Param 1: N 2057
Param 2: N 721504
Param 3: N 0
Local 1: O Class: TGET
TGET:HANDLEEVENT
Param 1: N 2057
Param 2: N 721504
Param 3: N 0
Local 1: O Class: TGET
Local 2: U
_FWH
Param 1: N 0
Param 2: N 2057
Param 3: N 721504
Param 4: N 0
Param 5: N 6
Local 1: O Class: TGET
SYSREFRESH
TCONTROL:KEYCHAR
Param 1: N 13
Param 2: N 18612225
Local 1: O Class: TGET
Local 2: U
Local 3: U
Local 4: U
Local 5: U
TGET:KEYCHAR
Param 1: N 13
Param 2: N 18612225
Local 1: O Class: TGET
Local 2: U
Local 3: U
Local 4: U
Local 5: U
Local 6: U
TWINDOW:HANDLEEVENT
Param 1: N 258
Param 2: N 13
Param 3: N 18612225
TCONTROL:HANDLEEVENT
Param 1: N 258
Param 2: N 13
Param 3: N 18612225
Local 1: O Class: TGET
TGET:HANDLEEVENT
Param 1: N 258
Param 2: N 13
Param 3: N 18612225
Local 1: O Class: TGET
Local 2: U
_FWH
Param 1: N 18612225
Param 2: N 258
Param 3: N 13
Param 4: N 18612225
Param 5: N 6
Local 1: O Class: TGET
DIALOGBOX
Param 1: N 4194304
Param 2: C "ID_DIALOGO1"
Param 3: N 3342670
Param 4: O Class: TDIALOG
TDIALOG:ACTIVATE
Param 1: U
Param 2: U
Param 3: B {|| ... }
Param 4: L .T.
Param 5: U
Param 6: L .T.
Param 7: U
Param 8: U
Param 9: U
Param 10: L .F.
Local 1: O Class: TDIALOG
Local 2: N 3342670
Local 3: U
Local 4: U
Local 5: S
Local 6: O Class: TDIALOG
FESTUDIOECO
Local 1: O Class: TDIALOG
Local 2: O Class: TGET
Local 3: N 5
(b)MAIN
Param 1: O Class: TBTNBMP
TBTNBMP:CLICK
Local 1: O Class: TBTNBMP
TBTNBMP:LBUTTONUP
Param 1: N 50
Param 2: N 72
Local 1: O Class: TBTNBMP
Local 2: U
Local 3: L .T.
TWINDOW:HANDLEEVENT
Param 1: N 514
Param 2: N 0
Param 3: N 3276872
TCONTROL:HANDLEEVENT
Param 1: N 514
Param 2: N 0
Param 3: N 3276872
Local 1: O Class: TBTNBMP
TBTNBMP:HANDLEEVENT
Param 1: N 514
Param 2: N 0
Param 3: N 3276872
Local 1: O Class: TBTNBMP
_FWH
Param 1: N 3276872
Param 2: N 514
Param 3: N 0
Param 4: N 3276872
Param 5: N 3
Local 1: O Class: TBTNBMP
WINRUN
Param 1: N 3342670
TWINDOW:ACTIVATE
Param 1: C "MAXIMIZED"
Param 2: U
Param 3: U
Param 4: U
Param 5: U
Param 6: U
Param 7: U
Param 8: U
Param 9: U
Param 10: U
Param 11: U
Param 12: U
Param 13: U
Param 14: U
Param 15: U
Param 16: U
Param 17: U
Param 18: U
Param 19: U
Local 1: O Class: TWINDOW
Local 2: U
Local 3: U
MAIN
Local 1: O Class: TWINDOW
Local 2: O Class: TBAR
Local 3: O Class: TICON
Local 4: U

Linked RDDs

DBF
DBFFPT
DBFBLOB
DBFNTX
ADORDD

DataBases in use

1: => CLIENTES RddName: ADORDD
==============================
RecNo RecCount BOF EOF
1 4 .F. .F.

 Indexes in use                        TagName

 Relations in use

Classes in use:

 1 ERROR
 2 HBCLASS
 3 HBOBJECT
 4 TWINDOW
 5 TCONTROL
 6 TICON
 7 TBRUSH
 8 TFONT
 9 TBAR
10 TRECT
11 TBTNBMP
12 TMSGBAR
13 TDIALOG
14 TGET
15 GET
16 TCLIPGET
17 TBUTTON
18 TOLEAUTO
19 TREG32

Memory Analysis

  101 Static variables

Dynamic memory consume:
Actual Value: 0 bytes
Highest Value: 0 bytes


Javier,

FWH 8.04 2008
Posts: 1
Joined: Sat Feb 28, 2009 08:25 AM
Re: Busquedas con base de datos en Access y ADORDD
Posted: Sat Feb 28, 2009 07:55 PM

jfafive:

¿Conseguiste solucionar este error?

me está pasando lo mismo

gracias1000
José Luis

Posts: 396
Joined: Tue Mar 18, 2008 09:41 PM
Re: Busquedas con base de datos en Access y ADORDD
Posted: Sun Mar 01, 2009 09:20 AM

No,

al final seguí trabajando con DBF.

Salu2

Javier,

FWH 8.04 2008
Posts: 1054
Joined: Sun Oct 09, 2005 10:41 PM
Re: Busquedas con base de datos en Access y ADORDD
Posted: Sun Mar 01, 2009 03:30 PM

Prueba asi:
USE DATABASE\presugen.mdb VIA "ADORDD" TABLE "clientes" ALIAS "CLIENTES"

CLIENTES->(DbGoTop())
LOCATE FOR CC="1452"
lVal := CC="1452"
MsgAlert( lVal )

Salu2

Continue the discussion