Page 1 of 2

Pasar datos de una tabla DBF a una de access

Posted: Wed Aug 16, 2006 8:06 pm
by EASYSOFT
Hola amigos de foro

Necesito pasar unos datos que se encuentran en una dbf a una tabla de access este el parte del codigo con el que lo he intentado

Gracias de antemano


#include "FiveWin.ch"
#include "sql.ch"

//----------------------------------------------------------------//

function Main()

Local oOdbc, oDbf,oDbf1
local aData := {}
Local cnombre

SET 3D LOOK ON
sele 1
use \fwh\fenix\tventas.dbf
browse()

oOdbc := TOdbc():New( "fenix", "", "" )

If !oOdbc:lSuccess
oOdbc:ShowErrorList("ODBC session not successfully initialized, aborting...")
oOdbc:End()
return nil
Endif



oDbf := TDbOdbcDirect():new( "SELECT * FROM ventas" , oOdbc)
oDbf:Open()
oDbf:Complete()

Browse()
cnombre:= oDbf:FieldName(1)
?? cnombre

sele 1
do while !eof()
?? 'ingrese'
oDbf:AddNew()
oDbf:tpIdCliente := tventas->tpidclien
oDbf:update()
sele 1
dbskip()
enddo

oDbf:End()
oOdbc:End()

return nil

Posted: Thu Aug 17, 2006 5:57 pm
by Antonio Linares
Es más sencillo si usas ADO. Aquí tienes un ejemplo publicado por René:

Code: Select all

LOCAL oConexionAdo := TOLEAUTO():New("adodb.connection")
PRIVATE oRecordset := TOLEAUTO():New("adodb.recordset")

   oConexionAdo:Open("Provider= MicroSoft.Jet.OLEDB.4.0;Data Source=.\taller.mdb;")

   oRecordSet:LockType := adLockOptimistic
   oRecordSet:CursorType := adOpenKeyset
   oRecordSet:ActiveConnection(oConexionAdo)
   oRecordSet:Source := "Select * from clientes" // tu query aqui
   oRecordSet:Open()
   oRecordSet:MoveFirst()

   aDatos := {}

   DO WHILE ! oRecordSet:eof()
        aReng := {}
        FOR x := 1 TO oRecordSet:Fields:Count()
            AADD(aReng,oRecordSet:Field(x-1):Value
        NEXT
        AADD(aDatos,aReng)
        oRecordSet:MoveNext
   ENDDO

   oRecordSet:Close()
   oConexionAdo:Close()

Posted: Thu Aug 17, 2006 7:54 pm
by EASYSOFT
Gracias Antonio



Saludos
_

Posted: Thu Aug 17, 2006 8:08 pm
by EASYSOFT
Disculpa Antonio
Como consigo la clase toleauto



Saludos

_

Posted: Thu Aug 17, 2006 11:27 pm
by Antonio Linares
_,

Está incluida en xharbour.

Posted: Fri Aug 18, 2006 6:31 pm
by EASYSOFT
Antonio,

Yo adquiri unicamente Harbour que debo hacer para obtener xharbour

Gracias por tu interes


Saludos
_

Posted: Fri Aug 18, 2006 7:15 pm
by fleal
_,
1) cuando comprastes tu fivewin para harbour, Antonio te dió una clave para descargar el software. Ahí mismo debistes de haber descargado tu harbour.exe y tu xharbour.exe

2) Necesitarás instalar el xharbour.exe para poder compilar tu prg y usar TOLEAUTO.

Ahora, tu versión 2.6 tiene más de un año. Mucho ha cambiado. Lo mejor sería que te actualizarás al último build.

En cuanto al código de ejemplo anexado arriba. Ese código es para leer una base de access... NO PARA PASAR la información de una dbf a access.

De dbf a MDB access.

Se requiere xharbour y fivewin para harbour. Yo lo tengo trabajando en FWH 2.7 + xharbour (Es el xharbour que viene en la compra de fivewin)

#define adOpenKeyset 1
#define adLockOptimistic 3

static function Guardar( )
local oConexionAdo := TOLEAUTO():New("adodb.connection")
local oRs := TOLEAUTO():New("adodb.recordset")


oConexionAdo:Open("Provider= MicroSoft.Jet.OLEDB.4.0;Data Source=C:\ACCESS\DATOS.MDB;") // DATOS.MDB es la base de access

oRs:LockType := adLockOptimistic
oRs:CursorType := adOpenKeyset
oRs:ActiveConnection(oConexionAdo)
oRs:Source := "Select * from CLIENTES" // CLIENTES es la tabla contenida dentro de DATOS.MDB
oRs:Open()


CAPTURA->( dbgotop() )
while CAPTURA->( !EOF() )
oRs:AddNew()
oRs:Fields("NOMBRE DEL SOLICITANTE"):Value := "NOMBRE"
oRs:Fields("COLONIA"):Value := CAPTURA->COLONIA

oRs:Update()

CAPTURA->( dbskip() )

enddo

oRs:Close()

?"Terminado"

return .T.

Posted: Mon Aug 21, 2006 3:11 pm
by EASYSOFT
Gracias por tu ayuda fleal




Saludos


_

Posted: Mon Aug 21, 2006 9:15 pm
by EASYSOFT
Antonio
Por favor me puede enviar los pasos a seguir y los costos para actualizar mi build, a mi correo

easysoft@andinanet.net

Gracias

Saludos
_

Posted: Tue Aug 22, 2006 6:33 am
by Antonio Linares
_,

Enviado

Re: Pasar datos de una tabla DBF a una de access

Posted: Wed Aug 06, 2014 11:18 pm
by AIDA
Hola buen día :D

Como debo abrir en un xbrowse una base de acces que tiene password :roll:


Gracias :mrgreen:


Saluditos :wink:

Re: Pasar datos de una tabla DBF a una de access

Posted: Thu Aug 07, 2014 2:29 am
by Antonio Linares
Aida,

Le acabo de reenviar tu pregunta a Rao que es nuestro experto en ADO :-)

Re: Pasar datos de una tabla DBF a una de access

Posted: Thu Aug 07, 2014 4:25 am
by AIDA
Tengo otra pregunta :oops:

no se si se pueda importar una tabla de acces con paswor a mysql usando código
para no tener que usar el NAVICAT para importarlo a mano :?:


Saluditos :wink:

Re: Pasar datos de una tabla DBF a una de access

Posted: Thu Aug 07, 2014 4:31 am
by Antonio Linares
Aida,

Eso posiblemente te lo puedan contestar algunos usuarios que hayan ya migrado DBFs a ADO.

Si no obtienes respuesta, le preguntaremos a Rao. Nuestro FiveDBU aún no tiene esa opción pero pronto vamos a incorporársela para ayudar a quienes necesiten migrar datos y que así lo puedan hacer comodamente :-)

Re: Pasar datos de una tabla DBF a una de access

Posted: Thu Aug 07, 2014 4:36 am
by AIDA
Ok are la pregunta como nueva :D


Gracias :mrgreen: