Page 1 of 1

Tablas DBF de VFP

Posted: Sun Feb 16, 2020 2:58 pm
by jnavas
Saludos
Necesito migrar datos de tablas DBF/CDX creadas con FOXPRO


SELECT A
USE (cFile) VIA "DBFCDX"

Genera error de corrupcion

Tambien
SELECT A
USE (cFile) VIA "ADS"

Genera error 6080

Agradecido su colaboracion
Probare por la VIA ODBC

Re: Tablas DBF de VFP

Posted: Mon Feb 17, 2020 3:32 am
by ruben Dario
Saludos.
Una vez hice una prueba y hice la conexion de 2 maneras. Te anexo codigo

Code: Select all

Local oCn,cQuery,cPass,cDB,cUser,oError,String ,oRs,b
cUser := " "
cDB   := "PRUEBA.DBC"
cPass := " "

String :=  "Driver={Microsoft Visual FoxPro Driver};SourceType=DBC;SourceDB=" + cDB + ";Exclusive=No;NULL=NO;Collate=Machine;BACKGROUNDFETCH=NO;DELETED=NO" 

//Otra manera tambien funciona
//String :=  "Provider=vfpoledb;Data Source=" + cDB + ";Collating Sequence=machine;"


/* funciona
oCn:Open("Provider=Advantage OLE DB Provider;User ID="+cUser +;
                      ";Password="+cPass+";Data Source="+ cDB +";TableType=ADS_VFP;"+;
                      "Advantage Server Type=ADS_LOCAL_SERVER;")
*/


      oCn        := TOLEAUTO():New("ADODB.connection")
      oCn:CursorLocation    := adUseClient
      oCn:Mode              := adModeShareDenyNone

      oCn:Open(String)
      cQuery:= "select * from clase"

    WITH OBJECT oRs := TOleAuto():New("adodb.recordset")
             :CacheSize := 50
             :CursorLocation := adUseClient
             :CursorType     := adOpenStatic
             :LockType       := adLockPessimistic
             :Open( cQuery , String,1, 3 )

    END

   b:=1
   oRs:MoveFirst()
   DO WHILE .NOT. oRs:EOF()
      ?oRs:Fields("clase"):value+" "+oRs:Fields("descripcio"):value
      b++
      oRs:MoveNext()
   ENDDO
    oRs:Close();oCn:Close() 

 

Re: Tablas DBF de VFP

Posted: Mon Feb 17, 2020 9:12 am
by jnavas
Ruben Dario
Saludos y buen dia
logré solucionar mediante:

1. Instale ODBC de ADS
2. Cree un DSN
3. Hice las consultas SQL desde MSQUERY de lo que necesitaba y como lo requería, con excel
4. Desde mi aplicación leo el archivo excel y logré importar los datos de manera rápida y comoda.

Agradecido por los buenos oficios, tomare en cuenta tu aporte para _.

Re: Tablas DBF de VFP

Posted: Mon Feb 17, 2020 12:50 pm
by hmpaquito
¿ Matando _ a cañonazos ?

Code: Select all

SET DBFLOCKSCHEME TO

Code: Select all

    
    // Constant Value Description
    DB_DBFLOCK_DEFAULT 0 Default locking scheme
    DB_DBFLOCK_CLIP 1 Clipper 5.2 locking scheme
    DB_DBFLOCK_CL53 2 Clipper 5.3 locking scheme
    DB_DBFLOCK_VFP 3 Visual FoxPro locking scheme
    DB_DBFLOCK_CL53EXT 4 Emulated shared locking
    DB_DBFLOCK_XHB64 5 Locking scheme for files > 4GB

Re: Tablas DBF de VFP

Posted: Tue Feb 18, 2020 1:46 pm
by jnavas
Saludos y Gracias,
Puedes enviarme programa ejemplo, estos son casos muy puntuales para migración de datos,

Re: Tablas DBF de VFP

Posted: Wed Feb 19, 2020 12:29 pm
by hmpaquito
Aunque nunca he traspasado información desde un .dbf vfp, lo que quise decir es que se puede abrir una .dbf vfp seteando el SET indicado.

Re: Tablas DBF de VFP

Posted: Thu Feb 20, 2020 9:35 pm
by carlos vargas

Code: Select all

#include "dbinfo.ch"

procedure main()
  SET DBFLOCKSCHEME TO DB_DBFLOCK_VFP
  USE (tabla_fox_pro) NEW
return