k.tnb Δημοσ. 17 Μαΐου 2009 Δημοσ. 17 Μαΐου 2009 Παιδιά αντιμετωπίζω το εξής παράδοξο, έχω γράψει σε Visual C# (MS Visual Studio) ένα κομμάτι κώδικα που καταχωρεί κάποια στοιχεία σε μια βάση Access 2008. Όταν κάνω publish την εφαρμογή στον IIS των Vista όλα τρέχουν σωστά. Όταν κάνω publish όμως σε IIS των XP, τη στιγμή που πρέπει να εκτελέσει το query η λειτουργία ExecuteNonQuery(), μου βγάζει μια εξαίρεση με το μήνυμα: Η λειτουργία πρέπει να χρησιμοποιεί ένα ερώτημα με δυνατότητα ενημέρωσης. Το query που στέλνω είναι INSERT ή UPDATE! Το έχει δει κανείς άλλος αυτό; Έχω φάει το Google και δε μπορώ να βρω κάτι.. ΥΓ: Αιτήματα SELECT δουλεύουν κανονικά και στα δυο λειτουργικά.
bxenos Δημοσ. 17 Μαΐου 2009 Δημοσ. 17 Μαΐου 2009 Σαν να έχεις ανοιξει τη database readonly μοιάζει. To αρχειο mdb έχει write/modify persmissions; Μήπως ο γονεϊκος φάκελος δεν έχει και περνάνε τα δικαιώματα και σ'αυτό;
k.tnb Δημοσ. 17 Μαΐου 2009 Μέλος Δημοσ. 17 Μαΐου 2009 Τα δικαιώματα είναι όπως πρέπει, με δικαίωμα εγγραφής και ανάγνωσης στον γονικό φάκελο αλλά και στο αρχείο της βάσης. Αυτό είναι που με τρελαίνει.. Thnx anyway..
CableCity Δημοσ. 17 Μαΐου 2009 Δημοσ. 17 Μαΐου 2009 μάλλον έχει να κάνει με τις ιδιότητες στην Access. Πήγαινε Επιλογές-->Σύνθετες επιλογές--->Επιβεβαίωση και εδώ αποεπέλεξε τα Ερωτήματα ενέργειας ή και τα ερωτήματα διαγραφής αν θες....
k.tnb Δημοσ. 17 Μαΐου 2009 Μέλος Δημοσ. 17 Μαΐου 2009 @Evgenios1: Το μήνυμα της εξαίρεσης είναι Η λειτουργία πρέπει να χρησιμοποιεί ένα ερώτημα με δυνατότητα ενημέρωσης. @CableCity: Βασικά δουλεύω σε Access 2008 και δεν βρήκα το μενού Επιλογές. Τα έχουν αλλάξει λίγο και με το Alt δεν εμφανίζεται η παλιά μπάρα επάνω.. Αυτό που πρότεινες θα έχει καμιά αλλαγή στον τρόπο αντιμετώπισης των ερωτημάτων προς τη βάση;
random Δημοσ. 18 Μαΐου 2009 Δημοσ. 18 Μαΐου 2009 Το μήνυμα της εξαίρεσης είναι Η λειτουργία πρέπει να χρησιμοποιεί ένα ερώτημα με δυνατότητα ενημέρωσης. κατ' αρχην μια συμβουλή: καλύτερα να ρυθμίσεις κάποιο απο τα συστηματα που χρησιμοποιείς (το λειτουργικό, ή την access, ή τον IIS.. δεν ξερω), σε English/US settings, γιατι debugging με ελληνικά μηνύματα ειναι άσκηση αυτομαστιγώματος.. δεν βρισκεις τιποτα στο google (εκτος απο το δικό σου post). ------------------------------------------------ Office και Access 2008, δεν υπάρχει. 2007 ειναι η τελευταία για Win ( αν βγήκε κάτι για Macs και δεν το ξέρω; ) ------------------------------------------------ στα vista και τα xp έχεις ίδια version .net framework (και SP), JET ? αν το μηνυμα στα αγγλικά ειναι το "Operation must use an updatable query. (Error 3073)" δες τα παρακάτω: http://support.microsoft.com/default.aspx?scid=kb;en-us;116142&Produc http://support.microsoft.com/kb/175168 http://www.aspfaqs.com/aspfaqs/ShowFAQ.asp?FAQID=107 http://www.dougscode.com/forum4/topic.asp?TOPIC_ID=5
k.tnb Δημοσ. 18 Μαΐου 2009 Μέλος Δημοσ. 18 Μαΐου 2009 Φυσικά εννοούσα την έκδοση 2007 από Office!! Απλά ήταν λάθος βιασύνης και δεν το είχα προσέξει καν... random, όσο αφορά το πρόβλημα, λύθηκε τελικά! Έλεγξα τους συνδέσμους που πρότεινες και όλοι μιλούσαν για πρόβλημα στα δικαιώματα κάτι το οποίο ανέφεραν και πιο πριν τα παιδιά και που νόμισα ότι τα είχα σωστά. Είχα ορίσει δικαιώματα εγγραφής για το αρχείο της βάσης και τον κατάλογο που βρίσκεται αλλά αυτά σύμφωνα με κάποιες ρυθμίσεις κληρονομούσαν τα δικαιώματα του κορυφαίου φακέλου του IIS, του wwwroot δηλαδή. Η λύση ήταν να καταργήσω αυτήν την κληρονομικότητα ή να θέσω δικαίωμα εγγραφής στον wwwroot. Έκανα το δεύτερο και δουλεύουν όλα μια χαρά.. Σας ευχαριστώ όλους για τις προτάσεις!
Evgenios1 Δημοσ. 18 Μαΐου 2009 Δημοσ. 18 Μαΐου 2009 Οταν σου λεω να βαλεις το exception εσυ μου το μεταφραζεις. Μια συμβολη: Οταν δουλευεις με κλασσεις οι οποιες εχουν throws καλο ειναι να κανεις catch το error code και μετα να το κγουκγλαρεις.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.