![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
![]() Saludos a todos en el foro...
Tengo dos bases de datos, una en dBASE III y la otra InterBase 6, el asunto es realizar una transición leyendo los registros de un archvo DBF y copiandolos a una tabla relacional en tiempo de ejecución (la estructura es estática). Mi pequeño problema es que existen registros marcados para ser eliminados que son copiados a la base de datos InterBase, por lo tanto obtengo registros duplicados y registros "basura" Mi idea es extraer metadatos de un archivo DBF para saber especificamente cuando un registro ha sido marcado para ser eliminado y de esta forma no sea copiado... pero he allí mi "pequeño gran problema" no se si es posible y de ser así cual seria el procedimiento, obviamente usando Delphi 7 ... gracias a todos por adelantado PD: para convertir los archivos DBF a InterBase utilice K2Pump http://www.ibphoenix.com/downloads/k2pump.zip
__________________
"Nadie es perfecto" (Don Nadie) |
#2
|
||||
|
||||
Pues mira, me acabo de bajar la utilidad que comentas, me he cogido una tabla Dbase con un campo memo incluso, la tabla tiene 2499 Registros he marcado para borrar 50, no he hecho pack y la he dejado como comento.
Con la utilidad que mencionas recien descargada, lo he pasado a una base de datos de Firebird 1.5, me ha pasado 2.449 registros, como ves los marcados no me los ha pasado. Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
![]() |
#3
|
|||
|
|||
Gracias por la información, eso me aclara la mitad del problema... solo la mitad, el asunto es que los registro como tal no aparecen en un reporte hecho en Clipper, pero están en los archivos DBF... que son convertidos a tablas relacionales.
Tal vez sea una confusión, pero estoy casi seguro que los reportes de Clipper son generados a partir de los mismos archivos DBF que son utilizados en la conversión, y que esos registros marcados para eliminación estan pasando... así que no entiendo En otras palabras ¿tendrá algo que ver alguna función de Clipper? (por ejemplo pack) pienso que no, pero... :-( Lo unico que pudiese aclararme las dudas es ver los metadatos de los archivos, pero el DataBase Desktop no muestra información acerca de registros "eliminados" ¿o si? Última edición por DobleSiete fecha: 07-01-2005 a las 12:56:05. |
#4
|
|||||
|
|||||
Cita:
Cita:
Cita:
Cita:
Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
![]() |
#5
|
|||
|
|||
Toda esa infomación es nueva para mi (excepto la existencia del DBU :-)) y alumbra bastante el problema... pero (siempre el "pero" por delante) no explica porque TU usaste el k2pump y transfirió los archivos marcados para borrar, pero en MI caso si los transfirió ¿por que?
Tu me hablaste de Firebird 1.5, yo estoy usando InterBase 6.0 ¿tendra algo que ver? Ademas tu me dices que los archivos DBF no tienen metadatos, eso no lo asimilo bien, k2pump utiliza funciones de Delphi para extraer información de los DBF, como nombres de archivos, tablas, tipos de datos, longitud, etc. entre esos datos debería estar el "switch" (por llamarlo de alguna manera) que dice "esta marcado para borrar, no te lo puedo proporcionar" ¿o eso lo maneja el mismo DBF? Gracias por tu enorme ayuda ... |
#6
|
||||
|
||||
Cita:
En los Dbf, cada tabla es un archivo, por lo tanto la única información que podemos extraer está en la propia tabla, no existe un sistema de metadatos y dominios como en Interbase y Firebird. Si utilizamos el BDE, que es el motor de base de datos de Borland que incorpora Delphi, podemos extraer todas estas propiedades a través de distintas funciones, FieldCount, FielDefs..... Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
![]() |
![]() |
|
|
![]() |
|