FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Seguimos con ADO
Posts: 464
Joined: Tue Mar 21, 2006 07:30 PM
Seguimos con ADO
Posted: Tue Mar 06, 2012 03:57 PM

Hola a todos

Me gustar铆a saber si alguien me puede tirar una manita para seguir, al menos para los temas de buscar en el mismo recordset y en otras tablas de la base de datos.
Para no incordiar mucho al foro, pod茅is mandarme un email para contactar.

Gracias

Un saludo
Pedro
gahetesoft@gmail.com
FWH12.06 BCC582, Xverce CW, Pelles C 6.00.4,PSPAD 4.54
y ahora con ADO
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Seguimos con ADO
Posted: Tue Mar 06, 2012 10:34 PM

Pedro,

Aqui tienes un ejemplo muy bueno que ha publicado Rick Lipkin:

viewtopic.php?p=127001#p127001

que ademas muestra como hacer una busqueda incremental. Mira mis respuestas en esa conversaci贸n para solucionar las busquedas incrementales que no le funcionaban :-)

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 464
Joined: Tue Mar 21, 2006 07:30 PM
Re: Seguimos con ADO
Posted: Wed Mar 07, 2012 08:39 AM

Gracias Antonio

A煤n no he llegado a esa parte, pero llegar茅, de momento estoy intentando buscar los m茅todos del objeto recordset y ver como se usan, por ejemplo Find, Locate, Filter, etc.

Por cierto que encuentro poca informaci贸n que no sea para VB. 驴D贸nde podr铆a encontrar informaci贸n acerca de estos m茅todos?

Un saludo
Pedro
gahetesoft@gmail.com
FWH12.06 BCC582, Xverce CW, Pelles C 6.00.4,PSPAD 4.54
y ahora con ADO
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Seguimos con ADO
Posted: Wed Mar 07, 2012 10:40 AM
Pedro,

Hace ya cierto tiempo implement茅 junto a F.M. un ADORDD para Harbour/xHarbour, y nos sirvi贸 como ejercicio para conocer los equivalentes en ADO de las funciones de manejo de DBFs a las que estamos acostumbrados. El c贸digo fuente est谩 disponible aqui:

http://xharbour.cvs.sourceforge.net/viewvc/xharbour/xharbour/source/rdd/usrrdd/rdds/adordd.prg?view=log

Aunque este c贸digo es "lioso" para iniciarse, lo que tiene de interesante es que tiene los equivalentes de DBFs a ADO, por ejemplo:

Append --> oRecordSet:AddNew()
Close --> oRecordSet:Close()
Commit --> oRecordSet:Update()
Delete --> oRecordSet:Delete()
Deleted() --> oRecordSet:Status == adRecDeleted
EOF() --> oRecordSet:EOF 贸 oRecordSet:AbsolutePosition == -3
Field() --> oRecordSet:Fields( nField - 1 ):Name, :Value, :Type
FCount() --> oRecordSet:Count
GoTop --> oRecordSet:MoveFirst()
GoBottom --> oRecordSet:MoveLast()
Locate --> oRecordSet:Find( cFor, If( lContinue, 1, 0 ) )
Open --> oRecordSet:Open( cQuery, hConnection )
OrdListClear() --> oRecordSet:Index := ""
RecCount(), LastRec() --> oRecordSet:RecordCount
RecNo() --> oRecordSet:AbsolutePosition
Skip --> oRecordSet:Move( nToSkip )
etc...
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 464
Joined: Tue Mar 21, 2006 07:30 PM
Re: Seguimos con ADO
Posted: Wed Mar 07, 2012 12:05 PM

Gracias Antonio

Por lo visto este adordd es mucho m谩s completo que el que viene en fwh.

Un saludo
Pedro
gahetesoft@gmail.com
FWH12.06 BCC582, Xverce CW, Pelles C 6.00.4,PSPAD 4.54
y ahora con ADO
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Seguimos con ADO
Posted: Wed Mar 07, 2012 12:46 PM

Pedro,

Si, una vez se a帽adi贸 a Harbour y xHarbour, otros programadores colaboraron en su desarrollo.

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 464
Joined: Tue Mar 21, 2006 07:30 PM
Re: Seguimos con ADO
Posted: Thu Mar 08, 2012 11:35 AM
Bueno ahora me ha dejado varado este error : Error ADODB.RecordSet/6 DISP_E_UNKNOWNNAME: FIND
Lo he puesto en dos sitios, primero en la funci贸n donde quiero buscar si el c贸digo est谩 dentro de los registros del recordset y me da el error, luego he creado un m茅todo buscar dentro de la clase TRecordset y me da el error en ese m茅todo.
As铆 lo he puesto :
Code (fw): Select all Collapse
*-------------------------------------------------------------------------------
METHOD BUSCA(xBuscar) class TRecordSet
*-------------------------------------------------------------------------------
Local lHay  := .T.
   
      ::oRs:Find(xBuscar)  <-------------- Aqui da el error
      If oRs:Eof()
         lHay := .F.
      EndIf   
return lHay


Tambi茅n lo hab铆a puesto de esta otra forma , pero en ambas da el mismo error :
Code (fw): Select all Collapse
* ------------------------------------------------------------------
FUNCTION BPacien(oDlg,nEvent)
* ------------------------------------------------------------------
Local cCodigo := Alltrim(oDbPacien:ID)
   

      cCodigo := PADL(cCodigo,6,"0")
      oRsPac:Find("oRsPac:ID = cCodigo")      
      If nEvent == ID_ALT
           If !oRsPac:Eof()
              MsgInfo("Ya existe el Paciente "+cCodigo,"ATENCION" )
              Return(.f.)
           EndIf
      EndIf
      oDbPacien:ID := cCodigo
      oDlg:UpDate()
Return(.t.)
Un saludo
Pedro
gahetesoft@gmail.com
FWH12.06 BCC582, Xverce CW, Pelles C 6.00.4,PSPAD 4.54
y ahora con ADO
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Seguimos con ADO
Posted: Thu Mar 08, 2012 12:10 PM

Pedro,

Puede ser que el motor de bases de datos que est谩s usando con ADO no lo soporte. Que tipos de ficheros son los que estas usando ?

Ese es el problema principal que nos encontramos cuando estabamos construyendo el AdoRdd: que segun el motor de bases de datos, unas cosas estan soportadas y otras no.

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 464
Joined: Tue Mar 21, 2006 07:30 PM
Re: Seguimos con ADO
Posted: Thu Mar 08, 2012 12:18 PM

Antonio he empezado con Acces, de forma sencilla, construyendo una base de Acces con varias tablas sencilla que ten铆a de un programa ya terminado.
Para abrir la base de datos :
oCone:=tOleAuto():new("ADODB.connection")
oCone:open("Provider= MicroSoft.Jet.OLEDB.4.0;Data Source="+cArea+"DIARIO.mdb"+";")

Como ya dije en el post anterior, la conexi贸n se efect煤a correctamente, el recordset con los datos me los muestra en un xBrowse, e incluso me trae a un di谩logo los datos de un registro, pero cuando intento hacer una b煤squeda del c贸digo de un paciente, por ejemplo, me da el error al usar el FIND

Un saludo
Pedro
gahetesoft@gmail.com
FWH12.06 BCC582, Xverce CW, Pelles C 6.00.4,PSPAD 4.54
y ahora con ADO
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Seguimos con ADO
Posted: Thu Mar 08, 2012 12:46 PM

Pedro,

Has revisado el ejemplo de Rick Lipkin en el que muestra como aplicar un filtro din谩mico ? El tambien usa Access

y el ejemplo esta completo y funciona muy bien :-)

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 464
Joined: Tue Mar 21, 2006 07:30 PM
Re: Seguimos con ADO
Posted: Mon Mar 12, 2012 10:01 AM
Hola
He revisado el ejemplo de Rick Lipkin y aplicando el filtro me hace lo que deseo.
Bien, despu茅s de un mont贸n de errores, producto de que la tabla fue importada de una dbf a acces, y cuando ya me hace el insertar un nuevo registro sin problemas, me encuentro que en la modificaci贸n (que es donde antes ten铆a los problemas por la importaci贸n de datos) ahora me da este bonito error :
Error description: Error ADODB.RecordSet/3 DISP_E_MEMBERNOTFOUND: UPDATE
Es decir ahora ya no existe el m茅todo UPDATE en el recordset.
En fin
Un saludo
Pedro
gahetesoft@gmail.com
FWH12.06 BCC582, Xverce CW, Pelles C 6.00.4,PSPAD 4.54
y ahora con ADO
Posts: 537
Joined: Mon Jan 16, 2006 03:42 PM
Re: Seguimos con ADO
Posted: Mon Mar 12, 2012 12:16 PM

Continue the discussion