IMPORTACION DESDE DBF

vForum público de la plataforma de desarrollo Velneo

Moderador: vCoaches

xulitin
vMate
vMate
Mensajes: 82
Registrado: 24 Oct 2005, 11:38

IMPORTACION DESDE DBF

Mensaje por xulitin »

Buenos dias!
Desde una aplicacion externa deseo trabajar con 2 ficheros dbf, uno de clientes, otro de facturas. Primero paso los dbf a mdb y desde ahí los traspaso mediante un tubo a vv. Hasta ahí todo correcto.
El problema lo tengo cuando hago la importacion una segunda o tercera vez para actualizar la tabla de vv; o bien me duplica los clientes y las facturas o bien si hago algun campo con el indice de clave única, me da error en la importacion, al encontrar (claro) las claves duplicadas, esta última opción funciona, pero claro es un engorro que el progama me de el error constantemente.

Alguien tiene alguna idea ??

Espero haberme explicado bien :)
Gracias
Avatar de Usuario
Fran
vCoach
vCoach
Mensajes: 6599
Registrado: 21 Sep 2005, 08:23

Mensaje por Fran »

Buenos dias:

Importa a un tabla temporal que vacías en cada importación. Una vez tengas los datos en la temporal compruebas si existen en la definitiva. Si existen actualizas y si no, añades.
Un saludo,

Francisco Javier Pérez Novo
EfeUno Consultores de Gestión y Software, S.L.
fjpnovo@efeuno.org
http://www.efeuno.org
(+34) 91 519 44 86
Skype: Fran-EfeUno

Google Maps:
40.447943147972445, -3.6719655990600586
xulitin
vMate
vMate
Mensajes: 82
Registrado: 24 Oct 2005, 11:38

Mensaje por xulitin »

Muchas Gracias, Fran. Vamos a intentarlo.
Vsaludos.
Paolo
vMate
vMate
Mensajes: 75
Registrado: 10 Feb 2006, 20:18

Mensaje por Paolo »

Hola buenas tardes :

Si aún no lo has resuelto, te comento como lo hacía yo y no me daba ése error. En el tubo de importación le marcas en Estilos:
NO INDEXAR Y HACER REGEN AL FINAL
USAR CONTENIDO INICIAL CAMPO DESTINO
USAR ACTUALIZACIONES EN DESTINO (si las tiene)

Y en propiedades del campo Código de la tabla destino de VV le pones en Contenido inicial : NINGUNO.
Cuando actua el tubo si existe el código no lo dá de alta.

De todas formas te digo que lo hacía así hasta que tuve errores con unas dll del XP y un colega de éste foro me recomendó que exportara de ACCESS a TEXTO "Ancho fijo" y te preparas un proceso para leer el archivo.txt y listo. Es más costoso sobre todo si tienes muchos campos pero a la larga es lo más fiable.

Saludos
Paolo
vMate
vMate
Mensajes: 75
Registrado: 10 Feb 2006, 20:18

Mensaje por Paolo »

Buenas tardes :

Perdón Xulitín !!! . He estado mirando la importación que yo realizaba y como ya la traía depurada de Access no me daba clave repetida. No obstante se me ocurre , aparte de lo que te comenta Francisco que seguro que es mejor que lo mío, es el proceso que te adjunto que lo he probado y funciona. Lo que no sé es el rendimiento que puede dar cuando haya muchos registros.

Saludos y perdón de nuevo por si te he hecho perder el tiempo.
Adjuntos
Importar mdb.jpg
(47.53 KiB) Descargado 282 veces
xulitin
vMate
vMate
Mensajes: 82
Registrado: 24 Oct 2005, 11:38

Mensaje por xulitin »

Gracias Paolo y disculpa la tardanza en responderte pero estuve de vacaciones. Los que teneis que perdonar sois vosotros por tener que contestar a personas novatas como yo. Voi a intentar hacer lo que tu me dices, a ver si lo consigo, porque los novatos es lo que tenemos, intentamos meternos en todo y al final, sólo gente como vosotros nos sacais del pozo. Muchas gracias, de verdad y ya te diré algo.
Avatar de Usuario
Cuco
vLeader
vLeader
Mensajes: 1179
Registrado: 20 Sep 2005, 20:45

Mensaje por Cuco »

Yo vincularía la tabla DBF a una base de datos Access, construiría la consulta correspondient, con las modificaciones que interese, e importaría de esta consulta, como dice Fran, a una tabla auxiliar igual que la consulta. Luego por los procesos adecuados añadiría sólo los registros nuevos.
杜鹃鸟
Juan Miguel Figueroa Dorrego

Fontanía Lógica ™, E.P.I.
Una empresa personal imaginaria
Posición:
43.532928,-5.628616
xulitin
vMate
vMate
Mensajes: 82
Registrado: 24 Oct 2005, 11:38

Mensaje por xulitin »

Buenas tardes .
Entiendo lo que proponeis, donde me hago un lío y no se por donde andar es en como hacer para comparar las dos tablas, es decir, hago la importacion a esa tabla temporal, pero dada mi novatez no doy hecho la comparación con la definitiva. Si alguien tuviera algún ejemplo lo agradecería. En la ayuda tampoco encuentro nada. Muchas gracias y mil disculpas.
Avatar de Usuario
Fran
vCoach
vCoach
Mensajes: 6599
Registrado: 21 Sep 2005, 08:23

Mensaje por Fran »

Buenas noches:

No hay ningún objeto que te permita comparar las tablas. Tendrás que recorrer la tabla temporal y realizar búsquedas en la tabla definitiva para ver si el registro existe o no.

Si existe lo modificas y si no lo añades.
Un saludo,

Francisco Javier Pérez Novo
EfeUno Consultores de Gestión y Software, S.L.
fjpnovo@efeuno.org
http://www.efeuno.org
(+34) 91 519 44 86
Skype: Fran-EfeUno

Google Maps:
40.447943147972445, -3.6719655990600586
xulitin
vMate
vMate
Mensajes: 82
Registrado: 24 Oct 2005, 11:38

Mensaje por xulitin »

Buenas tardes.
Fran, no consigo hacer funcionar. Hago lo siguiente.
1.- Antes de nada vacio la tabla puente cargando la lista, y recorriendola eliminando los registros.
2º Hago la importación total desde la base access a la tabla puente.

Aquí es donde empieza mi problema y supongo que será de "indices". ¿Qué tipo de índice necesito declarar para hacer la "comparación" y ver si el registro existe ya en la tabla definitiva? ¿O debería de plantearlo de otra manera?. Gracias.
Responder