en xHarbour + ADS no andan los indices idx.

en xHarbour + ADS no andan los indices idx.

Postby acartucho » 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
acartucho
 
Posts: 58
Joined: Thu Nov 02, 2006 1:17 pm

Postby Carlos Mora » Mon Oct 01, 2007 2: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.
Carlos Mora
 
Posts: 989
Joined: Thu Nov 24, 2005 3:01 pm
Location: Madrid, España

Postby acartucho » Mon Oct 01, 2007 2:26 pm

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

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

Postby R.F. » Mon Oct 01, 2007 4: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.
R.F.
 
Posts: 840
Joined: Thu Oct 13, 2005 7:05 pm

Postby acartucho » Mon Oct 01, 2007 5: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
acartucho
 
Posts: 58
Joined: Thu Nov 02, 2006 1:17 pm

Postby Carlos Mora » Mon Oct 01, 2007 7: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
Carlos Mora
 
Posts: 989
Joined: Thu Nov 24, 2005 3:01 pm
Location: Madrid, España

Postby acartucho » Mon Oct 01, 2007 8: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
acartucho
 
Posts: 58
Joined: Thu Nov 02, 2006 1:17 pm

Postby sysctrl2 » Mon Oct 01, 2007 9: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 "
User avatar
sysctrl2
 
Posts: 1027
Joined: Mon Feb 05, 2007 7:15 pm

Postby acartucho » 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
acartucho
 
Posts: 58
Joined: Thu Nov 02, 2006 1:17 pm

Postby Patricio Avalos Aguirre » Tue Oct 02, 2007 1: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
User avatar
Patricio Avalos Aguirre
 
Posts: 1060
Joined: Fri Oct 07, 2005 1:56 pm
Location: La Serena, Chile

Postby R.F. » 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.
R.F.
 
Posts: 840
Joined: Thu Oct 13, 2005 7:05 pm

Postby acartucho » 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
acartucho
 
Posts: 58
Joined: Thu Nov 02, 2006 1:17 pm

Postby acartucho » 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
acartucho
 
Posts: 58
Joined: Thu Nov 02, 2006 1:17 pm

Postby acartucho » 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.
acartucho
 
Posts: 58
Joined: Thu Nov 02, 2006 1:17 pm

Postby Patricio Avalos Aguirre » Fri Oct 12, 2007 1: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
User avatar
Patricio Avalos Aguirre
 
Posts: 1060
Joined: Fri Oct 07, 2005 1:56 pm
Location: La Serena, Chile

Next

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 43 guests