Search  
Friday, May 25, 2012 ..:: Forum ::.. Register  Login
 Forum Minimize
Pentru a putea posta mesaje trebuie să vă înregistraţi.
Notă: Mesajele cu conţinut jignitor sau ilegal (inclusiv cereri de soft piratat) nu sunt acceptate şi vor fi şterse imediat .

Pentru a primi raspunsuri rapide si corecte, scrieti in mesaj ce intentionati sa faceti, ce mesaj de eroare primiti, in ce context si in urma caror actiuni. De asemenea, mentionati versiunea de FoxPro in care lucrati!
Dacă nu specificați versiunea, se consideră VFP 9.0 SP2.

SearchForum Home
  Visual FoxPro  Baze de date, tabele, view-uri si indecsi  Stergere date d...
 Stergere date din tablela
 
 12/12/2010 2:14:11 PM
User is offlineadygoia
6 posts


Stergere date din tablela
 (N/A)
Am urmatoarea problema. Vreau sa sterg o inregistrare dintr-o tabela. Inainte de a sterge vreau sa verifice daca in alta tabela exista inregistrarea si numai da ca nu exista sa stearga.

SELECT provenienta
SET FILTER TO !DELETED()
oprovenienta=RECNO()
SELECT produse
LOCATE FOR ALLTRIM(produse.proven)==ALLTRIM(provenienta.proven) AND !DELETED()
IF FOUND()
    MESSAGEBOX("Nu puteti sterge aveti inregistrari",64,"Atentie")
ELSE
    IF MESSAGEBOX("Sigur doriti stergerea?",292)=6
        SELECT provenienta
        GOTO oprovenienta
        DELETE
    ELSE
        SELECT provenienta
        GOTO oprovenienta   
    ENDIF
ENDIF
thisform.grid1.SetFocus

Cu toate ca am inregistrari in cealalta tablea imi sterge. Cred ca nu am facut ceva bine...


 12/12/2010 3:54:22 PM
User is offlineMarian Dobre
398 posts
3rd


Re: Stergere date din tablela
 (N/A)
Ca sa nu mai vezi inregistrarile sterse ar trebui sa folosesti Set Deleted on. Uite un cod care rezolva problema (desi nu este o solutie eficienta pentru tabele mari.)

Set Deleted on
Use produse in 0
Use provenienta in 0
Select provenienta
* Te pozitionezi pe inregistrarea pe cere vei sa o stergi
Select
produse
Set filter to
... && Conditia ta
Go top
If Eof()
  
Select provenienta  
   Delete
Endif


Orice putere omeneasca este un compus de rabdare si de timp. Balzac
 12/12/2010 9:35:53 PM
User is offlineadygoia
6 posts


Re: Stergere date din tablela
 (N/A)
Alta e problema la mine. Inregistrarile sterse nu le vad. Am un camp proven care apare in 2 tabele: provenienta si produse. Vreau ca atunci cand vreau sa sterg o provenienta sa caute in tabela produse daca exista inregistrare cu campul provenienta selecat de mine si daca da sa nu ma lase sa sterg.
 12/12/2010 10:12:43 PM
User is offlineDaniel Buduru
2335 posts
1st




Re: Stergere date din tablela
 (N/A)
Daca tabelele sunt intr-o baza de date, pune o relatie de integritate referentiala intre provenienta si produse pe proven, si seteaza on delete restrict.

Poti folosi si asa ceva, desi integritatea referentiala e preferabila:

Delete from provenienta where proven=var_proven and provenienta.proven not in (select proven from produse)


Daniel Buduru
  Visual FoxPro  Baze de date, tabele, view-uri si indecsi  Stergere date d...

Search  Forum Home         

 Google Ads Minimize

    

Copyright 2002-2010 Profox   Terms Of Use  Privacy Statement