Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

INVALID CURSOR STATE

Îåêßíçóå áðü ôï ìÝëïò takis. Τελευταία δημοσίευση από το μέλος takis στις 25-04-2006, 12:07. Υπάρχουν 2 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  21-04-2006, 13:32 12056

    INVALID CURSOR STATE

    Εχω μια βάση σε SQL Server 2000 SP4. Αν δοκιμάσω από τον Query Analyzer να τρέξω το παρακάτω script μου δουλεύει κανονικά. Αν δοκιμάσω να το τρέξω εσωτερικά από μια εφαρμογή που χρησιμοποιεί την βάση και δίνει την δυνατότητα να εκτελέσω sql scripts μου βγάζει invalid cursor state. Κάποια βοήθεια;

     

    declare @a1 char(25), @a2 NUMERIC(25,10)
    declare mv cursor fast_forward for
    select COUNT(eidibr.Code) ,eidi.Code
    FROM  eidi INNER JOIN
                   eidibr ON eidi.AA = eidibr.MaterialAA
    GROUP BY eidi.Code
    open mv
    fetch next from mv into @a2, @a1

    While (@@fetch_status=0)
    begin
    UPDATE eidi

    SET eidi.value1 = @a2

    WHERE eidi.Code=@a1

    fetch next from mv into @a2, @a1
    end
    close mv
    deallocate mv

  •  24-04-2006, 19:32 12072 σε απάντηση της 12056

    Απ: INVALID CURSOR STATE

    Θα σου πρότεινα να το βάλεις σέ μιά stored procedure και κατόπιν νά εκτελέσεις αυτήν από τον client.

    Πάντως δέν είναι και ο καλύτερος τρόπος αυτό που κάνεις γιατί άν πέσεις σέ πίνακα ειδών μέ αρκετές χιλιάδες εγγραφές θά έχεις άσχημο performance στην εφαρμογή.

    Σίγουρα το παρακάτω θά ήταν πιό γρήγορο

    select COUNT(eidibr.Code) as inums,eidi.Code

    into #temp

    FROM eidi INNER JOIN

    eidibr ON eidi.AA = eidibr.MaterialAA

    GROUP BY eidi.Code

    update eidi.value1 =#temp.inums from #temp where eidi.Code=#temp.Code

    drop table #temp


    Ιωάννης Μανουσάκης
  •  25-04-2006, 12:07 12079 σε απάντηση της 12056

    Απ: INVALID CURSOR STATE

    Ευχαριστώ για την απάντηση. Η βάση έχει μόνο 100 είδη τα οποία δεν αυξάνονται ούτε μειώνονται. Εχω φτιάξει την stored procedure και δουλεύει, απλώς δεν μπορώ να κατανοήσω γιατί μου βγάζει invalid cursor state όταν το τρέχω σαν script.
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems