Seguimos con ADO
Seguimos con ADO
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
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
Pedro
gahetesoft@gmail.com
FWH12.06 BCC582, Xverce CW, Pelles C 6.00.4,PSPAD 4.54
y ahora con ADO
- Antonio Linares
- Site Admin
- Posts: 42521
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 31 times
- Been thanked: 75 times
- Contact:
Re: Seguimos con ADO
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
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

Re: Seguimos con ADO
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?
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
Pedro
gahetesoft@gmail.com
FWH12.06 BCC582, Xverce CW, Pelles C 6.00.4,PSPAD 4.54
y ahora con ADO
- Antonio Linares
- Site Admin
- Posts: 42521
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 31 times
- Been thanked: 75 times
- Contact:
Re: Seguimos con ADO
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:Fields: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...
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:Fields: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...
Re: Seguimos con ADO
Gracias Antonio
Por lo visto este adordd es mucho más completo que el que viene en fwh.
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
Pedro
gahetesoft@gmail.com
FWH12.06 BCC582, Xverce CW, Pelles C 6.00.4,PSPAD 4.54
y ahora con ADO
- Antonio Linares
- Site Admin
- Posts: 42521
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 31 times
- Been thanked: 75 times
- Contact:
Re: Seguimos con ADO
Pedro,
Si, una vez se añadió a Harbour y xHarbour, otros programadores colaboraron en su desarrollo.
Si, una vez se añadió a Harbour y xHarbour, otros programadores colaboraron en su desarrollo.
Re: Seguimos con ADO
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 :
También lo había puesto de esta otra forma , pero en ambas da el mismo error :
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: Select all | Expand
*-------------------------------------------------------------------------------
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: Select all | Expand
* ------------------------------------------------------------------
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
Pedro
gahetesoft@gmail.com
FWH12.06 BCC582, Xverce CW, Pelles C 6.00.4,PSPAD 4.54
y ahora con ADO
- Antonio Linares
- Site Admin
- Posts: 42521
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 31 times
- Been thanked: 75 times
- Contact:
Re: Seguimos con ADO
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.
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.
Re: Seguimos con ADO
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
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
Pedro
gahetesoft@gmail.com
FWH12.06 BCC582, Xverce CW, Pelles C 6.00.4,PSPAD 4.54
y ahora con ADO
- Antonio Linares
- Site Admin
- Posts: 42521
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 31 times
- Been thanked: 75 times
- Contact:
Re: Seguimos con ADO
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
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

Re: Seguimos con ADO
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
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
Pedro
gahetesoft@gmail.com
FWH12.06 BCC582, Xverce CW, Pelles C 6.00.4,PSPAD 4.54
y ahora con ADO