Borrado de una clave unica

Borrado de una clave unica

Postby JoseGS » Sun Jan 31, 2010 1:43 pm

Hola amigos:
Tengo el siguiente problema:

Tengo una DBF en la cual se almacenan ventas. Cada registro corresponde a un producto dentro de la factura. Esta DBF tiene 2 indices por FACTURA pero el primero es unico.... Para mostrar dicha DBF en pantalla utilizo 2 browse. En el primero presento la DBF con el indice 1 activo (indico UNIQUE) para que solo se presente un registro de cada venta... En el segundo browse presento por medio de un ARRAY el contenido de la venta. El usuario puede navegar en el browse 1 y de van presentando en el browse 2 el contenido de cada venta.

El problema consiste en que si se borra el primer registro presentando (que es el que esta indexado en el UNIQUE), la venta desaparece.

En FW lo habia resuelto usando la clausula FOR !DELETE() al momento de hacer el indice UNIQUE pero en FWH no me funciona. Definitivamente si hago PACK() luego de hacer el DELETE del registro aparece pero estoy puede demorar mucho ya que son archivos grandes.

Alguna idea de como hacer esto o es un BUG de FWH ?

Saludos
JoseGS
 
Posts: 205
Joined: Wed Sep 02, 2009 3:11 am

Re: Borrado de una clave unica

Postby Manuel Valdenebro » Mon Feb 01, 2010 5:43 am

Yo utilizo para eso dos tablas:

En la primera tabla, FACTURAS1, va el número de la factura (campo clave) y los datos del encabezamiento (cliente, fecha, datos fiscales, etc).

En la segunda tabla, FACTURAS 2, va un registro por cada producto, y su campo clave, es el número de factura de la tabla primera.

Cuando muestro un listbox con las facturas, solo muestro la tabla FACTURAS1. Si pulso intro, entraria entonces en los productos de esa factura, a traves de un índice temporal.
Un saludo

Manuel
User avatar
Manuel Valdenebro
 
Posts: 706
Joined: Thu Oct 06, 2005 9:57 pm
Location: Málaga-España

Re: Borrado de una clave unica

Postby JoseGS » Mon Feb 01, 2010 12:46 pm

Hola Manuel

Ese metodo ya lo he utilizado y funciona muy bien. El caso es que ya tengo el metodo que menciono implementado y deberia funcionar tal como lo hacia con FW... sera un error a corregir en FWH ? o es que me hace falta hacer algo en el sistema ?

Gracias por contestar...
JoseGS
 
Posts: 205
Joined: Wed Sep 02, 2009 3:11 am

Re: Borrado de una clave unica

Postby joseluisysturiz » Mon Feb 01, 2010 1:25 pm

Saludos, JoseGS el metodo mas funcional es como dice Manuel, ai lo tengo tambien, una DBF con los encabezados de la Factura y los totales, es decir, sub total de venta, total descuesntos si los hay, total impuestos, algun otro total y el neto de la factura o total a pagar, y en otra DBF los movimientos de dicha factura, eso seria una DBF relacionada, en el cual estan todos los movimientos de todas las facturas la cual filtro dependiendo del numero de factura que desee mostrar, coloca un poco de codigo para ayudarte un poco mas, es mas facil revisar y ver donde puede estar tu problema, gracias, saludos... :shock:
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Re: Borrado de una clave unica

Postby JoseGS » Tue Feb 02, 2010 4:20 am

Gracias... voy a tener que hacer la separacion...

No a la pereza !

"La pereza camina tan despacio, que la pobreza pronto la alcanza" B. Franklin
JoseGS
 
Posts: 205
Joined: Wed Sep 02, 2009 3:11 am

Re: Borrado de una clave unica

Postby Antonio Linares » Tue Feb 02, 2010 11:26 am

Jose,

Todo el uso de bases de datos e índices es algo propio de Harbour/xHarbour, no de FWH.

FWH se encarga principalmente del GUI, aunque tiene clases y funciones que cubren otras áreas, como la Clase TDataBase por ejemplo. Pero si no la estás usando, entonces cualquier variación de comportamiento, etc. respecto a Clipper, es algo específico del compilador usado, no de FWH.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41314
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Borrado de una clave unica

Postby jll-fwh » Thu Feb 04, 2010 9:50 pm

Hola JoséGS:

Efectivamente en FWH a mi tambien me paso que no funcionaban bien los indices con FOR !Deleted().

Pero se soluciona indexando los indices normalmente sin el FOR !DELETED()

Solo tienes que tener a ON la clausla SET DELETE.

SET DELETE ON

NOTA: En mi opinion no es recomandable hacer PACK en las aplicaciones, solo marcalo como borrado DELETE y siempre tendras el registro para poder recuperarlo.

UN SALUDO
JLL
Libreria: FWH/FWH1109 + Harbour 5.8.2 + Borland C++ 5.8.2
Editor de Recursos: PellecC
ADA, OURXDBU
S.O: XP / Win 7 /Win10
Blog: http://javierlloris.blogspot.com.es/
e-mail: javierllorisprogramador@gmail.com
User avatar
jll-fwh
 
Posts: 408
Joined: Fri Jan 29, 2010 8:14 pm
Location: Meliana - Valencia

Re: Borrado de una clave unica

Postby JoseGS » Fri Feb 05, 2010 12:28 pm

Gracias, voy a probar esto.
JoseGS
 
Posts: 205
Joined: Wed Sep 02, 2009 3:11 am


Return to FiveWin para Harbour/xHarbour

Who is online

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