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  Numerotare pozi...
 Numerotare poziti intr-un cursor
 
 10/11/2010 7:01:31 PM
User is offlineEugen Gliga
1052 posts
1st




Numerotare poziti intr-un cursor
 (N/A)
Intr-un cursor am pe langa alte campuri un camp numit Poz. Trebuie sa completez acest camp cu numarul de ordine, doar pentru pozitiile pentru care campu;l cantitate este diferit de zero.
N-as vrea sa scanez fisierul si completez campul numarand pozitiile ci sa folosesc un Update Sql, insa la experienta mea in Sql n-am reusit decat din mai multe instructiuni. Redau mai jos secventa de cod folosita in ideea ca are cineva o solutie mai  simpla.

UPDATE test SET poz=RECNO()
SELECT Poz , 0 as NewPoz FROM test WHERE !EMPTY(Cantitate) INTO CURSOR xxx readwrite
UPDATE  xxx SET NewPoz=RECNO("xxx")
UPDATE test SET poz= (select NewPoz from xxx WHERE xxx.poz=test.poz)
UPDATE Test SET Poz=0 WHERE ISNULL(poz)




 10/11/2010 8:30:21 PM
User is offlineDaniel Buduru
2335 posts
1st




Re: Numerotare poziti intr-un cursor
 (N/A) Modified By Daniel Buduru  on 10/11/2010 11:37:23 PM)
Exista o cheie primara in cursor?

Daca exista o cheie primara, se poate folosi varianta asta:

UPDATE test SET poz=bb.poz FROM (Select Recno() as poz, id FROM (Select id FROM test Where cantitate<>0) aa ) bb ;
where test.id=bb.id

Daca nu exista, trebuie creata in prealabil - poate fi utilizat si acel Update test set poz=recno().


Daniel Buduru
 10/12/2010 1:13:23 AM
User is offlineEugen Gliga
1052 posts
1st




Re: Numerotare poziti intr-un cursor
 (N/A)
Nu exista cheie primara. Daca folosesc Update test set poz=recno(), merge dar  se updateaza doar pozitiile care trebuie, restul ramanand cu vechile valori.

Am reusit astfel:
 
UPDATE test SET poz=bb.poz FROM (Select Recno() as Poz, Id FROM (Select RECNO() as Id FROM Test Where Cantitate<>0) aa) bb ;
 where Recno()=bb.Id

Multumesc pentru ajutor.



 10/12/2010 1:25:18 AM
User is offlineDaniel Buduru
2335 posts
1st




Re: Numerotare poziti intr-un cursor
 (N/A)
Ceva mai sigura ar fi forma Recno("test")=bb.poz
Lipsa unei chei primare e sursa multor probleme ...


Daniel Buduru
 10/12/2010 3:16:23 AM
User is offlineEugen Gliga
1052 posts
1st




Re: Numerotare poziti intr-un cursor
 (N/A)
Ai dreptate.
Multumesc inca o data.



  Visual FoxPro  Baze de date, tabele, view-uri si indecsi  Numerotare pozi...

Search  Forum Home         

 Google Ads Minimize

    

Copyright 2002-2010 Profox   Terms Of Use  Privacy Statement