Τα ερωτήματα πρόσβασης με χαρακτήρα μπαλαντέρ δεν εξάγουν δεδομένα σε ένα έγγραφο XML


Σφάλμα #: 8808 (Συντήρηση περιεχομένου)σφάλμα #: 232596 ( στο Internet) αυτό το άρθρο εφαρμόζεται μόνο σε μια βάση δεδομένων της Microsoft Access (. mdb).Μέτρια: απαιτεί βασικές δεξιότητες μακροεντολής, κωδικοποίησης και διαλειτουργικότητας.

Συμπτώματα


Όταν εξάγετε ένα ερώτημα της Access σε ένα έγγραφο XML και το ερώτημα περιέχει ένα χαρακτήρα μπαλαντέρ Microsoft Jet, όπως ένας αστερίσκος (*) στα κριτήρια, τα δεδομένα δεν εξάγονται στο έγγραφο XML. Επομένως, το προκύπτον έγγραφο XML δεν περιέχει δεδομένα. Το ερώτημα λειτουργεί σωστά, εάν εκτελείτε το ίδιο ερώτημα χρησιμοποιώντας την Access.

Αιτία


Αυτή η συμπεριφορά παρουσιάζεται όταν κάνετε εξαγωγή σε XML. Το XML χρησιμοποιεί αντικείμενα δεδομένων ActiveX (ADO) για να υποβάλει ερώτημα στα δεδομένα από τη βάση δεδομένων. Όταν χρησιμοποιείτε ένα χαρακτήρα μπαλαντέρ Jet συγκεκριμένο στο ερώτημα της Access, το ερώτημα επιστρέφει καμία εγγραφή. Αυτό το ζήτημα παρουσιάζεται επειδή το ADO αναγνωρίζει μόνο χαρακτήρες μπαλαντέρ του Αμερικανικού Ινστιτούτου εθνικών προτύπων (ANSI) 92.

Λύση


Για να επιλύσετε αυτό το ζήτημα, χρησιμοποιήστε μία από τις ακόλουθες μεθόδους.

Μέθοδος 1

Μπορείτε να ξαναγράψετε το ερώτημα για να αντικαταστήσετε το χαρακτήρα μπαλαντέρ του Jet με το χαρακτήρα μπαλαντέρ ANSI 92. Για παράδειγμα, το αρχικό ερώτημα μπορεί να μοιάζει με αυτό με το χαρακτήρα μπαλαντέρ *:
SELECT Customers.CustomerIDFROM CustomersWHERE (((Customers.CustomerID)  Like "A*"));
Μπορείτε να ξαναγράψετε το ερώτημα ως εξής:
SELECT Customers.CustomerIDFROM CustomersWHERE (((Customers.CustomerID)  Like "A%"));
Σημείωση Εάν η βάση δεδομένων της Access δεν έχει ρυθμιστεί για συμβατότητα ANSI 92, όταν εκτελείτε το ερώτημα που έχει ξαναγραφεί από την Access, δεν επιστρέφονται δεδομένα. Ωστόσο, το εξαγόμενο έγγραφο XML που βασίζεται στο ξαναγραφεί ερώτημα επιστρέφει τα αναμενόμενα αποτελέσματα.

Μέθοδος 2

Μπορείτε να ξαναγράψετε το ερώτημα έτσι ώστε το κριτήριο του ερωτήματος να μην περιέχει χαρακτήρες μπαλαντέρ. Για παράδειγμα, το αρχικό ερώτημα μπορεί να μοιάζει με αυτό με το χαρακτήρα μπαλαντέρ *:
SELECT Customers.CustomerIDFROM CustomersWHERE (((Customers.CustomerID)  Like "A*"));
Μπορείτε να ξαναγράψετε το ερώτημα ως εξής:
SELECT Customers.CustomerIDFROM CustomersWHERE Left(CustomerID,1) = "A";

Μέθοδος 3

Όταν εξάγετε δεδομένα σε ένα έγγραφο XML, μπορείτε να καθορίσετε αν θα εφαρμοστεί ένα υπάρχον φίλτρο στο αντικείμενο. Αντί να καθορίσετε ένα χαρακτήρα μπαλαντέρ στα κριτήρια του ερωτήματος, μπορείτε να δημιουργήσετε ένα φίλτρο με τη συμβολοσειρά φίλτρου ισοδύναμο με τα κριτήρια που θέλετε (όπως "A *") και, στη συνέχεια, να εφαρμόσετε αυτό το φίλτρο κατά τη διαδικασία εξαγωγής XML. Για να γίνει αυτό, ακολουθήστε τα εξής βήματα, ανάλογα με την έκδοση της Access.

Πρόσβαση 2003

  1. Ανοίξτε το δείγμα βάσης δεδομένων Northwind.
  2. Στο μενού Εισαγωγή , κάντε κλικ στο ερώτημα.
  3. Στο πλαίσιο διαλόγου " νέο ερώτημα ", επιλέξτε Προβολή σχεδίασηςκαι, στη συνέχεια, κάντε κλικ στο κουμπί OK.
  4. Στο μενού Προβολή , κάντε κλικ στην επιλογή Προβολή SQL.
  5. Στο παράθυρο ερωτήματος , επικολλήστε το ακόλουθο ερώτημα:
    SELECT Customers.CustomerIDFROM Customers;
    Σημείωση Μπορείτε να δείτε ότι το κριτήριο του ερωτήματος καταργείται. Επομένως, το ερώτημα δεν περιέχει χαρακτήρες μπαλαντέρ.
  6. Στο μενού αρχείο , κάντε κλικ στο κουμπί Αποθήκευση.
  7. Στο πλαίσιο όνομα ερωτήματος του πλαισίου διαλόγου Αποθήκευση ως , πληκτρολογήστε Ερώτημα1και, στη συνέχεια, κάντε κλικ στο κουμπί OK.
  8. Στο μενού Προβολή , κάντε κλικ στην επιλογή Προβολή φύλλου δεδομένων.
  9. Στο μενού καρτελών , επιλέξτε φίλτροκαι, στη συνέχεια, κάντε κλικ στο κουμπί Σύνθετο φίλτρο/ταξινόμηση.
  10. Στη λίστα πεδίων , επιλέξτε " ΚωδΠελάτη".
  11. Στο πλαίσιο κριτήρια στο πεδίο " ΚωδΠελάτη", επικολλήστε τον ακόλουθο κώδικα:
    Like "A*"
  12. Στο μενού φίλτρου , κάντε κλικ στην επιλογή εφαρμογή φίλτρου/ταξινόμησης.
  13. Στο μενού αρχείο , κάντε κλικ στο κουμπί Αποθήκευση.
  14. Στο μενού αρχείο , κάντε κλικ στο κουμπί Κλείσιμο.
  15. Στο παράθυρο της βάσης δεδομένων , κάντε κλικ στην επιλογή ερωτήματα.
  16. Κάντε δεξιό κλικ στο Ερώτημα1και, στη συνέχεια, κάντε κλικ στην επιλογή εξαγωγή.
  17. Στο ερώτημα εξαγωγής ' Ερώτημα1 ' σε πλαίσιο διαλόγου, επιλέξτε XML στη λίστα Αποθήκευση ως τύπου και, στη συνέχεια, κάντε κλικ στο κουμπί εξαγωγή.
  18. Στο πλαίσιο διαλόγου " Εξαγωγή XML ", κάντε κλικ στην επιλογή περισσότερες επιλογές.
  19. Στο πλαίσιο διαλόγου " Εξαγωγή XML ", επιλέξτε την καρτέλα δεδομένων . Στην περιοχή εγγραφές για εξαγωγή, κάντε κλικ για να επιλέξετε το πλαίσιο ελέγχου Εφαρμογή υπάρχοντος φίλτρου και, στη συνέχεια, κάντε κλικ στο κουμπί OK.

Πρόσβαση 2007

  1. Ανοίξτε το δείγμα βάσης δεδομένων Northwind.
  2. Στην καρτέλα Δημιουργία , κάντε κλικ στο κουμπί Σχεδίαση ερωτήματοςκαι, στη συνέχεια, κάντε κλικ στο κουμπί Κλείσιμο.
  3. Στην καρτέλα Σχεδίαση , κάντε κλικ στην επιλογή Προβολή SQL στην ομάδα αποτελεσμάτων .
  4. Στο παράθυρο ερωτήματος , επικολλήστε το ακόλουθο ερώτημα:
    SELECT Customers.[First Name]FROM Customers;
    Σημείωση Μπορείτε να δείτε ότι το κριτήριο του ερωτήματος καταργείται. Επομένως, το ερώτημα δεν περιέχει χαρακτήρες μπαλαντέρ.
  5. Κάντε κλικ στο κουμπί του Microsoft Officeκαι, στη συνέχεια, κάντε κλικ στο κουμπί Αποθήκευση.
  6. Στο πλαίσιο όνομα ερωτήματος του πλαισίου διαλόγου Αποθήκευση ως , πληκτρολογήστε Ερώτημα1και, στη συνέχεια, κάντε κλικ στο κουμπί OK.
  7. Στην Αρχική καρτέλα, στην ομάδα προβολών , κάντε κλικ στην επιλογή Προβολήκαι, στη συνέχεια, κάντε κλικ στην επιλογή Προβολή φύλλου δεδομένων.
  8. Στην Αρχική καρτέλα, κάντε κλικ στην επιλογή για προχωρημένους στην Ταξινόμηση & ομάδα φίλτρων και, στη συνέχεια, κάντε κλικ στο κουμπί Σύνθετο φίλτρο/ταξινόμηση.
  9. Στη λίστα πεδίων , επιλέξτε όνομα
  10. Στο πλαίσιο κριτήρια κάτω από το όνομα, επικολλήστε τον ακόλουθο κώδικα:
    Like "A*"
  11. Στην Αρχική καρτέλα, κάντε κλικ στην επιλογή για προχωρημένους στην Ταξινόμηση & ομάδα φίλτρων και, στη συνέχεια, κάντε κλικ στην επιλογή εφαρμογή φίλτρου/ταξινόμησης.
  12. Κάντε κλικ στο κουμπί του Microsoft Officeκαι, στη συνέχεια, κάντε κλικ στο κουμπί Αποθήκευση.
  13. Κάντε δεξιό κλικ στο Ερώτημα1, επιλέξτε εξαγωγή, πατήστε αρχείο XMLκαι, στη συνέχεια, κάντε κλικ στο κουμπί OK.
  14. Στο πλαίσιο διαλόγου " Εξαγωγή XML ", κάντε κλικ στην επιλογή περισσότερες επιλογές.
  15. Στο πλαίσιο διαλόγου " Εξαγωγή XML ", κάντε κλικ στην καρτέλα δεδομένων .
  16. Στην περιοχή εγγραφές για εξαγωγή, επιλέξτε την επιλογή Εφαρμογή υπάρχοντος φίλτρου και, στη συνέχεια, κάντε κλικ στο κουμπί OK.
  17. Στο παράθυρο διαλόγου Εξαγωγή-XML αρχείου , κάντε κλικ στο κουμπί Κλείσιμο.

Κατάσταση


Η Microsoft έχει επιβεβαιώσει ότι πρόκειται για ένα σφάλμα στα προϊόντα της Microsoft που παρατίθενται στην αρχή αυτού του άρθρου.

Περισσότερες πληροφορίες


Βήματα για την αναπαραγωγή του προβλήματος στην Access 2003

  1. Ανοίξτε το δείγμα βάσης δεδομένων Northwind.
  2. Στο μενού Εισαγωγή , κάντε κλικ στοερώτημα.
  3. Στο πλαίσιο διαλόγου " νέο ερώτημα ", επιλέξτεΠροβολή σχεδίασης και, στη συνέχεια, κάντε κλικ στο κουμπί OK.
  4. Στο μενού Προβολή , κάντε κλικ στην επιλογή Προβολή SQL.
  5. Στο παράθυρο ερωτήματος , επικολλήστε το ακόλουθο ερώτημα:
    SELECT Customers.CustomerIDFROM CustomersWHERE (((Customers.CustomerID)  Like "A*"));
  6. Κάντε κλικ στην επιλογή Αποθήκευση στο μενού αρχείων.
  7. Στο πλαίσιο όνομα ερωτήματος που βρίσκεται στο πλαίσιο διαλόγου "Αποθήκευση ως ", πληκτρολογήστεΕρώτημα1.
  8. Στο μενού αρχείο , κάντε κλικ στο κουμπίΚλείσιμο.
  9. Κάντε δεξιό κλικ Ερώτημα1 και στη συνέχεια κάντε κλικ στο κουμπί εξαγωγή.
  10. Στο πλαίσιο διαλόγου εξαγωγή ερωτήματος ' Ερώτημα1 ' σε... , επιλέξτε XML στη λίστα Αποθήκευση ως τύπου και, στη συνέχεια, κάντε κλικ στο κουμπί εξαγωγή.
  11. Στο πλαίσιο διαλόγου Εξαγωγή XML , κάντε κλικ στο κουμπίOK για να αποθηκεύσετε τα αρχεία που σχετίζονται με XML στην προεπιλεγμένη θέση.
  12. Στον Microsoft Internet Explorer, ανοίξτε το εξαγόμενο αρχείο XML. Μπορείτε να δείτε ότι το εξαγόμενο αρχείο XML που βασίζεται στο καθορισμένο ερώτημα δεν περιέχει εγγραφές.

Αναφορές


Για περισσότερες πληροφορίες σχετικά με τη σύνταξη ANSI 92, πληκτρολογήστε σχετικά με τη λειτουργία ερωτήματος ANSI SQL στο βοηθό του Office και, στη συνέχεια, κάντε κλικ στο κουμπί Αναζήτηση.