CDX Temporary

CDX Temporary

Postby Loren » Tue Nov 26, 2013 9:07 am

Buenos días, compañeros:

Tengo el caso de un aplicativo DBF-CDX en RED LOCAL cuyo "ARTI.DBF" contiene más de 3000 referencias. Para agilizar la búsqueda por palabras de estas referencias sustituí el típico dbsetfilter(&bfiltr,cfiltr) por indices CDX Temporary. Así:

Code: Select all  Expand view
index on descrip tag tempor to tempor temporary for upper(alltrim(nomcl)) $ upper(descrip)


De esta manera las búsquedas son INSTANTANEAS, pero aleatoriamente (NO SIEMPRE) genera un error del tipo Error DBFCDX/1201 Workarea not indexed porque automáticamente "desparece" el resto de índices asociados a esta DBF. ¿Cómo es posible?

¿Habeis utilizado esta forma para búsquedas? ¿Como compatibilizar este índice temporal con el resto de índices?

Mil gracias.
Un saludo.
LORENZO
desde Cádiz, España.
Loren
 
Posts: 479
Joined: Fri Feb 16, 2007 10:29 am
Location: Cadiz - España

Re: CDX Temporary

Postby karinha » Tue Nov 26, 2013 11:08 am

Después de usar el indice TEMPORARY haga asi:

SET INDEX TO

SELECT SUDBF

Salu2
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7266
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: CDX Temporary

Postby lucasdebeltran » Tue Nov 26, 2013 1:48 pm

Loren,

Añade la cláusula ADDITIVE al índice para que se añada a los que ya tienes.
Muchas gracias. Many thanks.

Un saludo, Best regards,

Harbour 3.2.0dev, Borland C++ 5.82 y FWH 13.06 [producción]

Implementando MSVC 2010, FWH64 y ADO.

Abandonando uso xHarbour y SQLRDD.
User avatar
lucasdebeltran
 
Posts: 1303
Joined: Tue Jul 21, 2009 8:12 am

Re: CDX Temporary

Postby Loren » Wed Nov 27, 2013 11:23 am

Gracias a ambos por contestar.

LucasdeBeltran, añadí la clausula ADDITIVE y aparentemente funciona correcto, pero al salir del programa y volver a entrar me genera un error justo al abrrir las DBF, del tipo:

Unrecoverable error 9104: hb_cdxIndexFree: index file still locked.

ARTI.DBF tiene asociado siempre los siguientes CDX:
2: => ARTI RddName: DBFCDX
___________________________________________________

RecNo RecCount BOF EOF
1478 1477 .T. .T.

Indices en Uso: TagName
TRAN(CODIGOA,'######') CODARTI
DESCRIP DESCRIP
TRAN(FAMILIA,'########') CODFAMI
TRAN(CBARRA_U,'##################')CODBARU
TRAN(CBARRA_C,'##################')CODBARC


.. y al hacer la búsqueda por descripción se hace así:
Code: Select all  Expand view
 index on descrip tag tempor to arti temporary ADDITIVE for upper(alltrim(nomcl)) $ upper(descrip)


He observado que cuando inicia el programa ARTI.DBF tiene asociado un índices más

2: => ARTI RddName: DBFCDX
___________________________________________________

RecNo RecCount BOF EOF
1478 1477 .T. .T.

Indices en Uso: TagName
TRAN(CODIGOA,'######') CODARTI
DESCRIP DESCRIP
TRAN(FAMILIA,'########') CODFAMI
TRAN(CBARRA_U,'##################')CODBARU
TRAN(CBARRA_C,'##################')CODBARC
=> descrip TEMPOR


¿Sabeis la solución al problema? Estoy dandole vuelta y haciendo pruebas pero no logro resolverlo. :cry:

Mil gracias. Un saludo.
LORENZO, desde Cádiz, España.
Loren
 
Posts: 479
Joined: Fri Feb 16, 2007 10:29 am
Location: Cadiz - España

Re: CDX Temporary

Postby Loren » Thu Nov 28, 2013 8:32 am

¿...?
Loren
 
Posts: 479
Joined: Fri Feb 16, 2007 10:29 am
Location: Cadiz - España

Re: CDX Temporary

Postby lucasdebeltran » Fri Nov 29, 2013 5:49 pm

Prueba con Set autopen off

Y antes de quit, ¿pones dbcloseall()?.
Muchas gracias. Many thanks.

Un saludo, Best regards,

Harbour 3.2.0dev, Borland C++ 5.82 y FWH 13.06 [producción]

Implementando MSVC 2010, FWH64 y ADO.

Abandonando uso xHarbour y SQLRDD.
User avatar
lucasdebeltran
 
Posts: 1303
Joined: Tue Jul 21, 2009 8:12 am

Re: CDX Temporary

Postby Loren » Tue Dec 03, 2013 7:51 am

Lucasdebeltran

Funcionó con Set autopen off y poniendo antes del quit "dbcloseall()"

Gracias. Un saludo.
LOREN
Loren
 
Posts: 479
Joined: Fri Feb 16, 2007 10:29 am
Location: Cadiz - España


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 8 guests