Search  
Saturday, February 11, 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  Cod, sintaxa si comenzi  Verificare dupl...
 Verificare duplicate
 
 3/24/2010 2:02:46 PM
User is offlineOvidiu Dobie
90 posts


Verificare duplicate
 (N/A)
Buna,
Vreau sa va cer si eu ajutorul intr-o mica problema.
Atunci cand, de exemplu, adaug persoane noi intr-o tabela, cu ajutorul unui formular, verific daca acel nume exista deja introdus in baza de date:

LOCATE FOR UPPER(ALLTRIM(nume)) = UPPER(ALLTRIM(thisform.txtNume.Value))
IF FOUND()
 exista_nume = .T.
ENDIF
Dar mi-am dat seama ca aceasta verificare a mea nu e tocmai buna, pt. ca daca exista in baza de date un "nene" cu numele Gigel Ioan Florin eu nu mai pot adauga si un alt "nene" cu numele Gigel Ioan, care nu e aceeasi persoana cu prima mentionata... Sper sa ma intelegeti...
Cum as putea sa rezolv aceasta problema? Ce trebuie sa modific in verificare ....? Sau aveti alta idee mai buna decat cu LOCATE ?

Ovidiu Dobie
 3/24/2010 2:28:57 PM
User is offlineGrigore Dolghin
3521 posts
www.class-software.eu
1st






Re: Verificare duplicate
 (N/A)
Nu tine de LOCATE, ci de design. Daca ai doi oameni diferiti cu acelasi nume, stii ca sunt diferiti NUMAI daca au ceva diferit. CNP, numar la pantofi, adresa, whatever. Dar ceva TREBUIE sa fie diferit la ei, altfel nu ai de unde sa stii. Deci verificarea ta trebuie sa se faca pe alt criteriu, nu pe nume.
Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
 3/24/2010 2:38:27 PM
User is offlineoviciandrus
761 posts
www.comptech.ro
1st




Re: Verificare duplicate
 (N/A)
daca vrei sa ai si Gigel Ioan si Gigel Ioan Florin, fa


LOCATE FOR UPPER(ALLTRIM(nume)) == UPPER(ALLTRIM(thisform.txtNume.Value))
 3/24/2010 2:42:52 PM
User is offlineOvidiu Dobie
90 posts


Re: Verificare duplicate
 (N/A)
OK, atunci haideti sa dau exemplul concret pe care lucrez. Inainte am dat exemplul cu numele, credeam ca e mai simplu, dar se pare ca nu l-am ales chiar pe cel mai potrivit.
E o mini-aplicatie in care trebuie sa salvez niste produse prime si produse finite.
Ma gandeam ca poate e prea complicat pe utilizator sa-l pun sa creeze el un cod care sa faca diferenta intre produse.
Incercand sa-l ajut pe utilizator, pe el il intreb numai numele produsului, iar eu in spate generez un cod numeric, care sa-mi confere unicitatea cheii primare, un id.
Utilizatorul a creat un produs prim cu numele "Prezon M8x11x2" si doreste sa mai adauge apoi produsul "Prezon M8x11" dar ii spune ca exista, pt. ca asa am facut eu functia aia cu LOCATE, UPPER si ALLTRIM ...
Ce ma sfatuiti in cazul acesta?

Ovidiu Dobie
 3/24/2010 2:47:57 PM
User is offlineOvidiu Dobie
90 posts


Re: Verificare duplicate
 (N/A)
Scriam postul si nu am observat solutia lui Ovi... cred ca acel = = ma va ajuta ...
Revin in cateva minute cu o veste, care, 99%, va fi buna... adica solutia scrisa a dat roade ...
Intotdeauna aici am gasit solutii pentru problemele mele...
Multumesc mult tuturor care ne dau din timpul lor si noua, celor ce nu prea ne descurcam cu VFP ...

Ovidiu Dobie
 3/24/2010 2:54:30 PM
User is offlineOvidiu Dobie
90 posts


Re: Verificare duplicate
 (N/A)
Merge 100%.
Ovi, multumesc mult pt. ajutor.

P.S. Am cautat "= =" in help si am gasit ca = = face Character string comparison iar = face doar Equal to ...

Ovidiu Dobie
  Visual FoxPro  Cod, sintaxa si comenzi  Verificare dupl...

Search  Forum Home         

 Google Ads Minimize

    

Copyright 2002-2010 Profox   Terms Of Use  Privacy Statement