Borrado de una clave unica

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

Borrado de una clave unica

Post by JoseGS »

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
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

Post by Manuel Valdenebro »

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
JoseGS
Posts: 205
Joined: Wed Sep 02, 2009 3:11 am

Re: Borrado de una clave unica

Post by JoseGS »

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...
User avatar
joseluisysturiz
Posts: 2024
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela
Contact:

Re: Borrado de una clave unica

Post by joseluisysturiz »

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!
JoseGS
Posts: 205
Joined: Wed Sep 02, 2009 3:11 am

Re: Borrado de una clave unica

Post by JoseGS »

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
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Borrado de una clave unica

Post by Antonio Linares »

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
jll-fwh
Posts: 385
Joined: Fri Jan 29, 2010 8:14 pm
Location: Meliana - Valencia
Contact:

Re: Borrado de una clave unica

Post by jll-fwh »

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 3.1.1 + Borland C++ 5.8.2
Editor de Recursos: PellecC
ADA + OURXDBU -
S.O: XP / Win 7
Blog: http://javierlloris.blogspot.com.es/
e-mail: jllorispersonal@gmail.com
JoseGS
Posts: 205
Joined: Wed Sep 02, 2009 3:11 am

Re: Borrado de una clave unica

Post by JoseGS »

Gracias, voy a probar esto.
Post Reply