Busquedas con base de datos en Access y ADORDD

Busquedas con base de datos en Access y ADORDD

Postby jfafive » Mon Apr 07, 2008 8: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:
jfafive
 
Posts: 396
Joined: Tue Mar 18, 2008 9:41 pm
Location: Marbella

Postby Antonio Linares » Mon Apr 07, 2008 8: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
User avatar
Antonio Linares
Site Admin
 
Posts: 41406
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Probando con LOCATE

Postby jfafive » Tue Apr 08, 2008 1: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.
jfafive
 
Posts: 396
Joined: Tue Mar 18, 2008 9:41 pm
Location: Marbella

Postby Enrrique Vertiz » Tue Apr 08, 2008 1: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 24.02, MySQL 8.0.X, SQLLIB 1.9m
Enrrique Vertiz
 
Posts: 519
Joined: Fri Oct 07, 2005 2:17 pm
Location: Lima - Peru

Postby jfafive » Tue Apr 08, 2008 7: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:
jfafive
 
Posts: 396
Joined: Tue Mar 18, 2008 9:41 pm
Location: Marbella

Postby Antonio Linares » Tue Apr 08, 2008 8:08 pm

Javier,

Hay que añadir Found() en ADORDD.prg de la siguiente manera:
Code: Select all  Expand view
...
#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
User avatar
Antonio Linares
Site Admin
 
Posts: 41406
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby jfafive » Tue Apr 08, 2008 8: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:
jfafive
 
Posts: 396
Joined: Tue Mar 18, 2008 9:41 pm
Location: Marbella

Postby Antonio Linares » Tue Apr 08, 2008 9:25 pm

bien! :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41406
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby jfafive » Wed Apr 09, 2008 9: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

jfafive
 
Posts: 396
Joined: Tue Mar 18, 2008 9:41 pm
Location: Marbella

Re: Busquedas con base de datos en Access y ADORDD

Postby jlmartinez » Sat Feb 28, 2009 7:55 pm

jfafive:

¿Conseguiste solucionar este error?

me está pasando lo mismo

gracias1000
José Luis
jlmartinez
 
Posts: 1
Joined: Sat Feb 28, 2009 8:25 am

Re: Busquedas con base de datos en Access y ADORDD

Postby jfafive » Sun Mar 01, 2009 9:20 am

No,

al final seguí trabajando con DBF.

Salu2
Javier,
FWH 8.04 2008
jfafive
 
Posts: 396
Joined: Tue Mar 18, 2008 9:41 pm
Location: Marbella

Re: Busquedas con base de datos en Access y ADORDD

Postby Willi Quintana » Sun Mar 01, 2009 3: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
User avatar
Willi Quintana
 
Posts: 1003
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 36 guests