FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour en xHarbour + ADS no andan los indices idx.
Posts: 58
Joined: Thu Nov 02, 2006 01:17 PM
en xHarbour + ADS no andan los indices idx.
Posted: Mon Oct 01, 2007 12:40 PM

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

Posts: 989
Joined: Thu Nov 24, 2005 03:01 PM
en xHarbour + ADS no andan los indices idx.
Posted: Mon Oct 01, 2007 02:02 PM

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.

Saludos
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
“If you think education is expensive, try ignorance"
Posts: 58
Joined: Thu Nov 02, 2006 01:17 PM
en xHarbour + ADS no andan los indices idx.
Posted: Mon Oct 01, 2007 02:26 PM

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

Andres

Posts: 840
Joined: Thu Oct 13, 2005 07:05 PM
en xHarbour + ADS no andan los indices idx.
Posted: Mon Oct 01, 2007 04:48 PM

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.
Posts: 58
Joined: Thu Nov 02, 2006 01:17 PM
en xHarbour + ADS no andan los indices idx.
Posted: Mon Oct 01, 2007 05:41 PM

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

Posts: 989
Joined: Thu Nov 24, 2005 03:01 PM
en xHarbour + ADS no andan los indices idx.
Posted: Mon Oct 01, 2007 07:52 PM

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

Saludos
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
“If you think education is expensive, try ignorance"
Posts: 58
Joined: Thu Nov 02, 2006 01:17 PM
en xHarbour + ADS no andan los indices idx.
Posted: Mon Oct 01, 2007 08:46 PM

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

Posts: 1144
Joined: Mon Feb 05, 2007 07:15 PM
en xHarbour + ADS no andan los indices idx.
Posted: Mon Oct 01, 2007 09:01 PM

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 "
Posts: 58
Joined: Thu Nov 02, 2006 01:17 PM
en xHarbour + ADS no andan los indices idx.
Posted: Tue Oct 02, 2007 11:35 AM

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

Posts: 1074
Joined: Fri Oct 07, 2005 01:56 PM
en xHarbour + ADS no andan los indices idx.
Posted: Tue Oct 02, 2007 01:13 PM

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
Posts: 840
Joined: Thu Oct 13, 2005 07:05 PM
en xHarbour + ADS no andan los indices idx.
Posted: Tue Oct 02, 2007 10:54 PM

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.
Posts: 58
Joined: Thu Nov 02, 2006 01:17 PM
en xHarbour + ADS no andan los indices idx.
Posted: Wed Oct 03, 2007 12:21 PM

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

Andres

Posts: 58
Joined: Thu Nov 02, 2006 01:17 PM
en xHarbour + ADS no andan los indices idx.
Posted: Thu Oct 04, 2007 12:50 PM

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

Posts: 58
Joined: Thu Nov 02, 2006 01:17 PM
en xHarbour + ADS no andan los indices idx.
Posted: Fri Oct 12, 2007 11:51 AM

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.

Posts: 1074
Joined: Fri Oct 07, 2005 01:56 PM
en xHarbour + ADS no andan los indices idx.
Posted: Fri Oct 12, 2007 01:40 PM

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