Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Tablas planas (https://www.clubdelphi.com/foros/forumdisplay.php?f=20)
-   -   Al cambiar de .NTX a .CDX quedan por fuera 482 facturas (https://www.clubdelphi.com/foros/showthread.php?t=56427)

Alfredo 16-05-2008 19:26:57

Al cambiar de .NTX a .CDX quedan por fuera 482 facturas
 
Asi es mis amigos, y no tengo la menor ydea de por que?

Tengo un sistemita de facturacion que hice hace mas de 10 años y trabaja con indices .NTX, acabo de cambiarlo para que trabaje con .CDX. Es cambio fue transparente, funciona bien todo lo demas incluso los reportes por fecha me muestran esas mismas facturas (lo que me dice que el rollo puede estar relacionado con los indixes), pero cuando las consulto individualmente "no se encuentran". (aunque estan fisicamente en la tabla).
Las tablas estan creadas en clipper, y el mantenimiento lo hace el mismo sistema hecho en clipper.

Indexo por la clave Factura (Nº DE FACTURA) asi:

IF FILE("FACTURAS.CDX")
FERASE("FACTURAS.CDX")
ENDIF

USE FACTURAS NEW EXCLUSIVE
INDEX ON FACTURA TAG INXFAC TO FACTURAS

ACCEDO A LA TABLA ASI:

IF NETUSE("FACTURAS", .F., 2)
SET ORDER TO TAG INXFAC
ELSE
RETURN
ENDIF

Se que este no es un foro de clipper, pero la idea era que en vista de que el sitema "viejito" funcionaba muy bien, entonces mientras se crea el nuevo, hice una aplicacion que accede a dichas tablas por .CDX (sin problemas). Pero me encuentro ante esa traba.
Tambien intente darle mantenimiento desde Delphi y se me corrompe la Tabla.
Lo ideal seria dejarlo atras y que esperen hasta que este listo el Nuevo sistema, pero, (la tipica ley de Murphi) necesitan trabajar sobre algunas de, ADIVINARON! las facturas a las que no se pueden acceder.

Repito solo es un bloque de Facturas que estan fuera del indice.... antes de esas todas se pueden consultar y despues tambien.


Si alguien tiene una idea mucho se lo agradeceria. :confused:

marcoszorrilla 16-05-2008 21:54:21

Yo pienso que las facturas están "borradas", sería conveniente que utilizando alguna utilidad compruebes si están marcadas para borrar.

Si es así desde clipper mismo desmárcalas.
Código Delphi [-]
Facturas->(DbGoTop())
WHILE !Facturas->(EOF())      
      Facturas->(DbRecall())
      Facturas->(DbSkip())
 END

Ahora crea de nuevo el índice, ya nos dirás si lo solucionas.

Un Saludo.

Alfredo 16-05-2008 22:59:07

Gracias Marcos,
Eso fue lo segundo que revise. estan fisica y logicamente en la tabla. Acabo de mandar a que carguen la version anterior (la que usa NTX) y reindexen.... y como si nada hubiera pasado, se ven todas y cada una con todos sus datos..:confused:

marcoszorrilla 16-05-2008 23:04:04

Otro asunto puede ser Set Unique, sino recuerdo mal si está activado no indexa los números repetidos aunque físicamente esten en la tabla.

Un Saludo.

Alfredo 19-05-2008 17:12:00

Es que eso es lo increible....

si estuviera indexando por una expresion compuesta u otra cosa, pero lo hago precisamente con el campo que es el correlativo de facturas.... y solamente por el.
He estado pensando en que es una deficiencia en el manejo de .CDX de clipper
5.2
Creo que voy a tirar la toalla y paso la pagina. Me voy directo a delphi, despues pasare las tablas a FB y se acaba esa historia.
Gracias como siempre Marcos...

marcoszorrilla 19-05-2008 21:38:01

Como última prueba, crea una tabla nueva igual que la que te da problemas, y luego haces un "Append from" e importas todos los datos, mira a ver si están todos los registros y si es así crea los índices a ver que pasa.

Un Saludo.

Alfredo 20-05-2008 16:06:21

.... vale la pena probar,

Un millon por el dato. Realmente nunca trabaje con los .CDX, pero todas las referencias que tengo son buenas. Me estraña ese comportamiento, pero incluso se corronpian las tablas si las modificaba desde DB desktop. Vere que pasa...

AGAG4 20-05-2008 18:03:34

Y porque te cambiastes de .NTX a .CDX ????

Alfredo 20-05-2008 22:15:39

Epale tocayo!

Es para que otro programita que hice en delphi accediera sin problemas a la base de datos. De hecho funciono como se esperaba, solo que despues de un dia de pruebas, nos dimos cuenta que al consultar facturas, algunas no se encontraban (en el indice, en la tabla si estan, y ese es el problema, porque las salta la indexacion?, no es lógico).

Por cierto: las factura que no se indexan noson solo el bloque que mencione, sino que hay otros bloquesitos de facturas mas pequeños que tambien quedan por fuera :eek:.

En los actuales momentos estoy tratando de darle la vuelta al asunto con el componente VKDBFNTX, pero es un tanto dificil usarlo, recien pude crear los campos persistentes, y algo falta, porque igual no habre la tabla aun....:confused:

waly2k1 01-06-2008 09:06:51

El viejo Clipper...
 
Fijate bien el tipo de campo que es Factura, si es string
indexalo con la misma cantidad de caracteres, es lo unico que se me ocurre.
Sino que el indice activo sea realmente el que crees que es.

Usa:
FACTURAS->( DbGoTop() ) // vas al comienzo de la tabla
FACTURAS->( OrdSetFocus( "INXFAC" ) ) // Seleccionas el tag

olvidate de cambiar indices por numeros, ya que el indice es un solo archivo con sus respectivos tag en los CDX, mucho mas no recuerdo de Clipper pero
era así. Cuanta nostalgia!!!

Saludos y espero serte util

AGAG4 03-06-2008 01:58:54

Porque no cambias de base de datos a firebird, interbase, oracle, etc. etc. ????

waly2k1 03-06-2008 03:12:12

Cita:

Empezado por AGAG4 (Mensaje 290841)
Porque no cambias de base de datos a firebird, interbase, oracle, etc. etc. ????

Ah que bueno, bien tu respuesta, pero...
desde Clipper 5.X se puede acceder a base de datos
firebird, interbase, oracle, etc. etc. ????

Si se pudiera creo que sería excelente, pero no viejo
Lo mejor sería migrar obviamente, pero mientras no se realice la migración hay que mantener lo que hay y como sea.

Saludos


La franja horaria es GMT +2. Ahora son las 19:47:05.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi