en xHarbour + ADS no andan los indices idx.

acartucho
Posts: 58
Joined: Thu Nov 02, 2006 1:17 pm

en xHarbour + ADS no andan los indices idx.

Post by acartucho »

Estoy migrando las aplicaciones a xHarbour + Fivewin con RddAds, pero me encuentro con el problema que en xHarbour las tablas de mas de 2 millones de registros tienen problemas con los indices (no encuentra los registros en bases dbf con indices idx, no pasa en ADT con indices ADI) y migrar a adt + adi me trae el problema con la aplicaciones viejas en clipper. Si se les ocurre alguna idea te lo voy a agradecer.

Andres

ADS 8.1 para 250 usuarios sobre novell 5.
xHarbour 0.9971 + FiveWin 7.01
esta con el cliente que viene en la version 8.1
y con la correcta ace32.lib
Carlos Mora
Posts: 988
Joined: Thu Nov 24, 2005 3:01 pm
Location: Madrid, España

Post by Carlos Mora »

Has probado con CDX? los 2 millones de registros no serán limitaciones propias del IDX? IDX es un formato más que antiguo, de Foxbase original si no me equivoco, y por lo tanto los limites son bajos.

Un saludo,

Carlos.
acartucho
Posts: 58
Joined: Thu Nov 02, 2006 1:17 pm

Post by acartucho »

Los programas en Clipper+FiveWin no tienen problemas con los indices, por lo tanto los indices no tienen problemas. Gracias

Andres
R.F.
Posts: 840
Joined: Thu Oct 13, 2005 7:05 pm

Post by R.F. »

Acabo de probar un indice IDX con una tabla de 5 millones de registros y va perfecto con ADS 8.1 y xHarbour

¿ Que error te esta marcando ?
Saludos
R.F.
acartucho
Posts: 58
Joined: Thu Nov 02, 2006 1:17 pm

Post by acartucho »

En indices como numero de documento str(dni,10) o apellido con los 18 caracteres, me da found()=FALSE como que no estuviera en la tabla, cuando en realidad si hago el seek con clipper+fivewin si lo encuentra.
Me da la impresion que cuando la variable del indice supera mas de 10 caracteres ahi empienzan los problemas. Gracias por contestar
Carlos Mora
Posts: 988
Joined: Thu Nov 24, 2005 3:01 pm
Location: Madrid, España

Post by Carlos Mora »

Podrías postear el trozo de código que te falla? La verdad es que me parece extraño. No he usado los IDX desde hace mucho, y no he tenido + de 2 millones de registros, pero que te falle un seek me parece raro. Me gustaria ver el código para ver que puede estar cambiando de un compilador a otro.
Un saludo,
Carlos
acartucho
Posts: 58
Joined: Thu Nov 02, 2006 1:17 pm

Post by acartucho »

cDocumento:=92345678
Select Solicitud
seek str(cDocumento,10)
if found() // aqui sale por falso y esta en los indices!!

si lo hago en Clipper + FiveWin lo encuentra.


Gracias.
Andres
User avatar
sysctrl2
Posts: 833
Joined: Mon Feb 05, 2007 7:15 pm
Contact:

Post by sysctrl2 »

Andres , tienes que cambiar el indice,

INDEX ON STRZERO(DOCUMENTO,10)

nDocumento := strzero(92345678,10)

if dbseek(nDocumento )
msginfo( 'encontrado' )
endif




saludos...
Cesar Cortes Cruz
SysCtrl Software
Mexico

' Sin +- FWH es mejor "
acartucho
Posts: 58
Joined: Thu Nov 02, 2006 1:17 pm

Post by acartucho »

No es ese el problema porque con un seek buscando apellido tampoco funciona en xHarbour y si en Clipper. Para mi el problema esta entre la Rddads de xHarbour y la dll de ads.

Gracias.

Andres
User avatar
Patricio Avalos Aguirre
Posts: 1028
Joined: Fri Oct 07, 2005 1:56 pm
Location: La Serena, Chile
Contact:

Post by Patricio Avalos Aguirre »

Hola

Yo tuve algo parecido en algun tiempo

el problema era que utilizaba las bases de datos creadas por clipper,

lo que hice fue hacer un procedimiento de crear las bases de datos en xharbour, luego hacer un append from y luego indexar todo a travez de un programa hecho en xharbour.

podrias probar a ver si te soluciona el problema

suerte..
Saludos
Patricio

__________________________________________________________________
Version: Harbour 3.2.0dev (r1307082134),Compiler: Borland C++ 5.8.2 (32-bit)
PCode version: 0.3, FWH 13.2
http://www.sialm.cl
R.F.
Posts: 840
Joined: Thu Oct 13, 2005 7:05 pm

Post by R.F. »

No uses FOUND() esa funcion fue marcada como obsoleta en la version 5.3 de Clipper., utiliza mejor :

IF DBSEEK(valor)...
....
...

Funciona mejor.

Tambien es cierto que el hecho de usar tablas DBF con indices CDX afecta, ya que la estructura DBF que Clipper utiliza con los indices CDX no es exactamente compatible con la estructura nativa de FoxPro, y ADS si utiliza una estructura nativa CDX de Fox.

Curiosamente un programa en Clipper no tiene problemas en leer una tabla CDX creada con ADS o con Fox, pero Fox y ADS si pueden presentar problemas manejando una tabla DBF con indices CDX creada con Clipper.
Saludos
R.F.
acartucho
Posts: 58
Joined: Thu Nov 02, 2006 1:17 pm

Post by acartucho »

Gracias, voy crear los dbf con xHarbour y hacer un append, regenerar los indices y ver que pasa. Muchas gracias.

Andres
acartucho
Posts: 58
Joined: Thu Nov 02, 2006 1:17 pm

Post by acartucho »

Rene:

Cree la dbf con xHarbour e hice un append desde la base, genere los nuevos indices idx y en un archivo de fichas de personas de 3.600.000 registros y con un indice con los primeros 18 digitos del apellido, me encuentra apellidos hasta MORENO, si busco apellidos que empienza con la O en adelante no encuentra nada, el found() y DBSEEK() dan FALSE y con SOFTSEEK ON se va al final del archivo. En clipper + fivewin el seek me encuentra todo sin problemas. Gracias por la atencion.

Andres

ADS 8.1 para 250 usuarios sobre novell 5.
xHarbour 0.9971 + FiveWin 7.01
esta con el cliente que viene en la version 8.1
acartucho
Posts: 58
Joined: Thu Nov 02, 2006 1:17 pm

Post by acartucho »

Aparentemente descubri donde esta el problema, si los indices se generan con Clipper+Fivewin, xHarbour tiene problemas en encontrar algunos registros y si los genero con xHarbour, cuando los abro con Clipper+Fivewin da error al realizar busquedas. No son compatibles entre si los indices generados con aplicaciones de 16 y 32 bits utilizando ADS 8.1.
User avatar
Patricio Avalos Aguirre
Posts: 1028
Joined: Fri Oct 07, 2005 1:56 pm
Location: La Serena, Chile
Contact:

Post by Patricio Avalos Aguirre »

Hola

La version de clipper es la 5.3, si no lo es puedes recompilar con esta version y probar
Saludos
Patricio

__________________________________________________________________
Version: Harbour 3.2.0dev (r1307082134),Compiler: Borland C++ 5.8.2 (32-bit)
PCode version: 0.3, FWH 13.2
http://www.sialm.cl
Post Reply