|
FORUMS PROFESSIONNELS WINDEV, WEBDEV et WINDEV Mobile |
| | | | | |
Débuté par Manuel, 17 nov. 2008 17:16 - 8 réponses |
| |
| | | |
|
| |
Posté le 17 novembre 2008 - 17:16 |
tengo una aplicacion en VFox con DBF, con este programa trabajan en una fabrica
estoy desarrolando una aplicacion que se alimenta de esos datos los DBF.
tengo windev 12 y estoy trabajando con Hyper File Clasica
Ya logre exportar los datos sin problema, pero ahora neceita actualizarlos.
en otras palabras borrar todos los registros de una tabla y cargarlos de otra.
como appen from en VFOX..
Gracias |
| |
| |
| | | |
|
| | |
| |
Posté le 17 novembre 2008 - 18:52 |
Hola Manuel,
Para lograr este tratamiento debes hacer esto:
- Crear una conexión a la base de datos externa (HDescribeConnection) - Crear un alias de los archivos (Halias) - Afectar esta conexión a los archivos (HChangeConnection ) - Crear estos archivos (HCreationIfNotFound) - Copiar el contenido de los archivos HF en los archivos nuevos (bucle con HCopyRecord).
-- Saludos pat http://megustawindev.free.fr |
| |
| |
| | | |
|
| | |
| |
Posté le 18 novembre 2008 - 00:45 |
Hola Manuel por favor podrias ayudarme Como lograste importar los archivos DBF de VFP al HF clasico por favor si puedes enviame esa informaciona mi email windev @ mansoft.com.ec
Muchas gracias |
| |
| |
| | | |
|
| | |
| |
Posté le 18 novembre 2008 - 00:50 |
| |
| |
| | | |
|
| | |
| |
Posté le 18 novembre 2008 - 08:47 |
Para el que lo necesite, os adjunto como lo he hecho yo, y me ha funcionado OK.
Como vereis, hay una barra de progresion y un grid donde muestro la tabla, esto no es imprescindible.
Un saludo R. Rodrigo
//------------------------------------------------- CENTROGAS ---------------------------------------------------
//EDT_empresa_emp=xx // Delete all the selected rows from a table NbSelection = TableCount(TABLE_Centrogas,toTotal) ACTUAL=0 PROGBAR_centrogas..MaxValue=NbSelection PROGBAR_centrogas..MinValue=ACTUAL HReadFirst(Centrogas,ANO) WHILE NOT HOut ACTUAL=ACTUAL+1 PROGBAR_centrogas..Value=ACTUAL IF CBOX_Inicializa..Value=1 THEN STC_accion_centrogas..Caption="Elimina" HDelete(Centrogas,hCurrentRecNum) ELSE IF xx=Centrogas.empresa AND EDT_Ano_emp=Centrogas.ANO THEN STC_accion_centrogas..Caption="Elimina" HDelete(Centrogas,hCurrentRecNum) END END HReadNext(Centrogas,ANO) END TableDisplay(TABLE_Centrogas)
FILE_ORI=NoSpace(EDT_Carpeta_sin)+"\Centros.DBF" HDBOpen("Centrogas_ORI","cg",FILE_ORI) edt_centrogas_codigo..FileLink = "Centrogas_ori.centrogas" edt_centrogas_nombre..FileLink = "Centrogas_ori.nombre" HReadFirst("Centrogas_ORI","centrogas") MAXIMO = HNbRec("Centrogas_ORI") ACTUAL=0 PROGBAR_centrogas..MaxValue=MAXIMO PROGBAR_centrogas..MinValue=ACTUAL STC_accion_centrogas..Caption="Convierte" WHILE NOT H.Out ACTUAL=ACTUAL+1 PROGBAR_centrogas..Value=ACTUAL FileToScreen() // originales viejos Centrogas.empresa=xx Centrogas.ANO=EDT_Ano_emp Centrogas.CODIGO=edt_centrogas_codigo Centrogas.NOMBRE=edt_centrogas_nombre HAdd(Centrogas) HReadNext("Centrogas_ori") END
TableDisplay(TABLE_Centrogas) |
| |
| |
| | | |
|
| | |
| |
Posté le 18 novembre 2008 - 11:06 |
Veo que estas utilizando acceso directo desde windev, Tus dbf son de bases de datos vfoxpro o son dbf libres ? yo lo probe y los dbf de una base de datos (DBC) no eran accesibles nativamente.
Saludos Raül Vidiella
En/na R.Rodrigo ha escrit:
Para el que lo necesite, os adjunto como lo he hecho yo, y me ha funcionado OK.
Como vereis, hay una barra de progresion y un grid donde muestro la tabla, esto no es imprescindible.
Un saludo R. Rodrigo
//------------------------------------------------- CENTROGAS ---------------------------------------------------
//EDT_empresa_emp=xx // Delete all the selected rows from a table NbSelection = TableCount(TABLE_Centrogas,toTotal) ACTUAL=0 PROGBAR_centrogas..MaxValue=NbSelection PROGBAR_centrogas..MinValue¬TUAL HReadFirst(Centrogas,ANO) WHILE NOT HOut ACTUAL¬TUAL+1 PROGBAR_centrogas..Value¬TUAL IF CBOX_Inicializa..Value=1 THEN STC_accion_centrogas..Caption="Elimina" HDelete(Centrogas,hCurrentRecNum) ELSE IF xx=Centrogas.empresa AND EDT_Ano_emp=Centrogas.ANO THEN STC_accion_centrogas..Caption="Elimina" HDelete(Centrogas,hCurrentRecNum) END END HReadNext(Centrogas,ANO) END TableDisplay(TABLE_Centrogas)
FILE_ORI=NoSpace(EDT_Carpeta_sin)+"\Centros.DBF" HDBOpen("Centrogas_ORI","cg",FILE_ORI) edt_centrogas_codigo..FileLink = "Centrogas_ori.centrogas" edt_centrogas_nombre..FileLink = "Centrogas_ori.nombre" HReadFirst("Centrogas_ORI","centrogas") MAXIMO = HNbRec("Centrogas_ORI") ACTUAL=0 PROGBAR_centrogas..MaxValue=MAXIMO PROGBAR_centrogas..MinValue¬TUAL STC_accion_centrogas..Caption="Convierte" WHILE NOT H.Out ACTUAL¬TUAL+1 PROGBAR_centrogas..Value¬TUAL FileToScreen() // originales viejos Centrogas.empresa=xx Centrogas.ANOíT_Ano_emp Centrogas.CODIGO=edt_centrogas_codigo Centrogas.NOMBRE=edt_centrogas_nombre HAdd(Centrogas) HReadNext("Centrogas_ori") END
TableDisplay(TABLE_Centrogas)
|
| |
| |
| | | |
|
| | |
| |
Posté le 18 novembre 2008 - 11:17 |
Te muestro el acceso a dbf a traves de OLEDB.
// definir datos de la conexion Cn_VFPData is Connection ds_VFPData is Data Source Cn_VFPData..User = "" Cn_VFPData..Password = "" Cn_VFPData..Server = "localhost" Cn_VFPData..Database = "" Cn_VFPData..Source ="C:\basededatos.dbc" Cn_VFPData..Provider = "VFPOLEDB.1" Cn_VFPData..Access = hOReadWrite Cn_VFPData..ExtendedInfo = ""
// abrir conexion a base de datos (DBC) IF NOT HOpenConnection( Cn_VFPData ) THEN DelayBeforeClosing(1000) Info("No se puede conectar con la base de datos",HErrorInfo()) END
// importar datos de un dbf sQueryString is string sQueryString = "SELECT * from fichero_dbf " IF NOT HExecuteSQLQuery(ds_VFPData, Cn_VFPData, hQueryWithoutCorrection, sQueryString) THEN info("Fallo al recuperar fichero.") ELSE *.- recorrer la consulta HReadFirst(ds_VFPData) WHILE NOT HOut(ds_VFPData) HReadNext(ds_VFPData) END endi
Espero te sirva. Raül Vidiella
En/na Manrique orellana ha escrit:
Hola Manuel por favor podrias ayudarme Como lograste importar los archivos DBF de VFP al HF clasico por favor si puedes enviame esa informaciona mi email windev @ mansoft.com.ec
Muchas gracias
|
| |
| |
| | | |
|
| | |
| |
Posté le 18 novembre 2008 - 16:35 |
Perfecto compañeros
voy a probar y les cuento. pero deantemano muchas gracias por indicar la forma ó procedimiento para hacer esto
Gracias
Manuel |
| |
| |
| | | |
|
| | |
| |
Posté le 04 décembre 2008 - 15:45 |
Ver esto:
//EDT_empresa_emp=xx // Delete all the selected rows from a table NbSelection = TableCount(TABLE_Centrogas,toTotal) PROGBAR_centrogas..MaxValue=NbSelection PROGBAR_centrogas=0 for each Centrogas ON ANO PROGBAR_centrogas ++ IF CBOX_Inicializa=true THEN STC_accion_centrogas..Caption="Elimina" HDelete(Centrogas) ELSE IF xx=Centrogas.empresa AND EDT_Ano_emp=Centrogas.ANO THEN STC_accion_centrogas..Caption="Elimina" HDelete(Centrogas) END END END TableDisplay(TABLE_Centrogas)
"R.Rodrigo" <frrr@grupo3rs.com> escribió en el mensaje de noticias news:f2f72848df9d4a5ef638bce0cbf967a1@news.pcsoft...
Para el que lo necesite, os adjunto como lo he hecho yo, y me ha funcionado OK.
Como vereis, hay una barra de progresion y un grid donde muestro la tabla, esto no es imprescindible.
Un saludo R. Rodrigo
//------------------------------------------------- CENTROGAS ---------------------------------------------------
//EDT_empresa_emp=xx // Delete all the selected rows from a table NbSelection = TableCount(TABLE_Centrogas,toTotal) ACTUAL=0 PROGBAR_centrogas..MaxValue=NbSelection PROGBAR_centrogas..MinValue¬TUAL HReadFirst(Centrogas,ANO) WHILE NOT HOut ACTUAL¬TUAL+1 PROGBAR_centrogas..Value¬TUAL IF CBOX_Inicializa..Value=1 THEN STC_accion_centrogas..Caption="Elimina" HDelete(Centrogas,hCurrentRecNum) ELSE IF xx=Centrogas.empresa AND EDT_Ano_emp=Centrogas.ANO THEN STC_accion_centrogas..Caption="Elimina" HDelete(Centrogas,hCurrentRecNum) END END HReadNext(Centrogas,ANO) END TableDisplay(TABLE_Centrogas)
FILE_ORI=NoSpace(EDT_Carpeta_sin)+"\Centros.DBF" HDBOpen("Centrogas_ORI","cg",FILE_ORI) edt_centrogas_codigo..FileLink = "Centrogas_ori.centrogas" edt_centrogas_nombre..FileLink = "Centrogas_ori.nombre" HReadFirst("Centrogas_ORI","centrogas") MAXIMO = HNbRec("Centrogas_ORI") ACTUAL=0 PROGBAR_centrogas..MaxValue=MAXIMO PROGBAR_centrogas..MinValue¬TUAL STC_accion_centrogas..Caption="Convierte" WHILE NOT H.Out ACTUAL¬TUAL+1 PROGBAR_centrogas..Value¬TUAL FileToScreen() // originales viejos Centrogas.empresa=xx Centrogas.ANOíT_Ano_emp Centrogas.CODIGO=edt_centrogas_codigo Centrogas.NOMBRE=edt_centrogas_nombre
HAdd(Centrogas)
HReadNext("Centrogas_ori") END
TableDisplay(TABLE_Centrogas)
|
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|