ACC: Τρόπος για να ορίσετε την τιμή QueryTimeout για συνδέσεις ODBC

Αποποίηση ευθυνών για περιεχόμενο της Γνωσιακής βάσης που έχει αποσυρθεί

Αυτό το άρθρο αφορά προϊόντα για τα οποία η Microsoft δεν παρέχει πλέον υποστήριξη. Συνεπώς, το παρόν άρθρο παρέχεται "ως έχει" και δεν θα ενημερώνεται πλέον.

Σύνοψη

ΣΗΜΑΝΤΙΚΌ: Αυτό το άρθρο περιέχει πληροφορίες σχετικά με την επεξεργασία του μητρώου. Πριν να επεξεργαστείτε το μητρώο, πρέπει πρώτα να δημιουργήσετε ένα αντίγραφο ασφαλείας των αρχείων μητρώου (System.dat και User.dat). Και οι δύο είναι κρυφά αρχεία στο φάκελο των Windows.


Για προχωρημένους: Απαιτεί ειδικές γνώσεις κωδικοποίησης, διαλειτουργικότητας και περιβάλλοντος για πολλούς χρήστες.


Αυτό το άρθρο παρουσιάζει τον τρόπο για να ορίσετε την ιδιότητα QueryTimeout για ερωτήματα που εκτελούνται από προελεύσεις δεδομένων ODBC.

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

Όταν χρησιμοποιείτε μια βάση δεδομένων ODBC, όπως ο Microsoft SQL Server, ίσως υπάρχουν καθυστερήσεις λόγω δίκτυο κυκλοφορία ή σε έντονη χρήση του διακομιστή ODBC. Αντί για αόριστο χρονικό διάστημα αναμονής, μπορείτε να καθορίσετε το χρόνο αναμονής πριν από το μηχανισμό διαχείρισης βάσεων δεδομένων Microsoft Jet θα προκαλέσει σφάλμα. Η προεπιλεγμένη ρύθμιση της ιδιότητας QueryTimeout είναι 60 δευτερόλεπτα. Αυτή η ρύθμιση δεν είναι αρκετά μεγάλη ώστε να επιτρέψει ορισμένα ερωτήματα για να εκτελεστεί από προελεύσεις δεδομένων ODBC. Τις ακόλουθες δύο μεθόδους δείχνουν πώς μπορείτε να αλλάξετε την ιδιότητα QueryTimeout.


ΣΗΜΕΊΩΣΗ: Όταν χρησιμοποιείτε τη μέθοδο 1 για να αλλάξετε την ιδιότητα QueryTimeout, η τιμή θα οριστεί για ένα συγκεκριμένο αντικείμενο QueryDef. Όταν δημιουργείτε ένα νέο ερώτημα μέσω του περιβάλλοντος εργασίας χρήστη σε Microsoft Access 97, με την ιδιότητα QueryTimeout προεπιλεγμένη 60.


ΣΗΜΕΊΩΣΗ: Όταν χρησιμοποιείτε τα βήματα που περιέχονται σε μέθοδο 2 για να ορίσετε την τιμή QueryTimeout μέσα στο μητρώο, οποιοδήποτε ερώτημα νέους και υπάρχοντες τη Microsoft Access θα συνεχίσει να εμφανίζεται η τιμή 60 για την ιδιότητα QueryTimeout. Εάν η τιμή που ορίζεται μέσω του μητρώου είναι μεγαλύτερη από την τιμή που έχει οριστεί μέσα στο μεμονωμένο ερώτημα, η Microsoft Access θα χρησιμοποιήσει την τιμή μέσα στο μητρώο για να προσδιορίσετε πόσο χρόνο αναμονής πριν από ένα QueryTimeout.

Μέθοδος 1

Δημιουργήστε μια υπορουτίνα για να ορίσετε την ιδιότητα.


Δημιουργήστε και εκτελέστε την ακόλουθη υπορουτίνα, όταν ανοίγετε τη βάση δεδομένων σας:

   Sub SetTimeout()      Dim Mydb as Database
Set Mydb=CurrentDB
MYdb.QueryTimeout=120
End Sub


Όταν αυτή η ιδιότητα έχει οριστεί, αντικαθιστά οποιαδήποτε τιμή ή την προεπιλεγμένη ρύθμιση του μητρώου των Windows.


ΣΗΜΕΊΩΣΗ: Εάν αντιμετωπίζετε προβλήματα με την ιδιότητα QueryTimeout, ίσως χρειαστεί να κάνετε αναβάθμιση στην πιο πρόσφατη έκδοση του ο μηχανισμός βάσης δεδομένων Microsoft Jet για την έκδοση της Microsoft Access. Μέχρι τότε, εάν αντιμετωπίζετε προβλήματα με την CurrentDB.QueryTimeout, θα μπορούσε επίσης να επιχειρήσει χρησιμοποιώντας DBEngine (0)(0). Ωστόσο, συνιστάται να έχετε την τρέχουσα έκδοση του μηχανισμού διαχείρισης βάσεων δεδομένων Microsoft Jet.


Για πληροφορίες σχετικά με τον τρόπο απόκτησης του Microsoft Jet 3.51, ανατρέξτε στο ακόλουθο άρθρο της Γνωσιακής Βάσης της Microsoft:


172733 Υπάρχει ACC97: ενημερωμένη έκδοση του Microsoft Jet 3.5 διαθέσιμη για λήψη

Παράδειγμα χρησιμοποιώντας DBEngine


  Sub mytest()     Dim mydb As Database
Set mydb = DBEngine(0)(0)
mydb.QueryTimeout = 120
MsgBox mydb.QueryTimeout
End Sub


Μέθοδος 2

Ορίστε την ιδιότητα στο μητρώο.


ΠΡΟΕΙΔΟΠΟΊΗΣΗ: Η εσφαλμένη χρήση του επεξεργαστή μητρώου μπορεί να προκαλέσει σοβαρά προβλήματα, τα οποία ίσως απαιτήσουν την επανεγκατάσταση των Windows. Η Microsoft δεν μπορεί να εγγυηθεί ότι τα προβλήματα που προκύπτουν από την εσφαλμένη χρήση του επεξεργαστή μητρώου είναι δυνατό να επιλυθούν. Χρησιμοποιήστε τον Επεξεργαστή μητρώου με δική σας ευθύνη.


Για πληροφορίες σχετικά με τον τρόπο επεξεργασίας του μητρώου, προβάλετε το θέμα Αλλαγή κλειδιών και τιμών ηλεκτρονικής Βοήθειας στον επεξεργαστή μητρώου (Regedit.exe). Σημειώστε ότι θα πρέπει να δημιουργήσετε ένα αντίγραφο ασφαλείας των αρχείων μητρώου (System.dat και User.dat), πριν να επεξεργαστείτε το μητρώο.

Χρησιμοποιώντας την Microsoft Access 97


  1. Μεταβείτε στο ακόλουθο κλειδί μητρώου:

         HKEY_LOCAL_MACHINE\Software\Microsoft\Jet\3.5\Engines\ODBC

  2. Επιλέξτε QueryTimeout, επιλέξτε Επεξεργασία και στη συνέχεια να τροποποιήσετε. Αλλάξτε την τιμή DWORD στην επιθυμητή ρύθμιση. Η τιμή αντιπροσωπεύει τον αριθμό των δευτερολέπτων για το χρονικό όριο.

Χρήση της Microsoft Access έκδοση 7.0


  1. Δημιουργήστε το ακόλουθο κλειδί μητρώου:

        HKEY_LOCAL_MACHINE\Software\Microsoft\Access\7.0\Jet\3.0\Engines\ODBC

  2. Κάντε κλικ στο κουμπί τροποποίηση και στη συνέχεια επιλέξτε τιμή DWORD. Προσθήκη QueryTimeout και να ορίσετε το χρονικό όριο σε ακέραια τιμή. Αυτή η τιμή αντιπροσωπεύει τον αριθμό των δευτερολέπτων για το χρονικό όριο.
Σημείωση: Εάν αυτή η αλλαγή στο μητρώο έγινε κατά την εκτέλεση της Microsoft Access, θα πρέπει να πρώτα Κλείστε και κατόπιν ανοίξτε ξανά η Microsoft Access πριν από την αλλαγή αναγνωρίζεται.

Αναφορές

Για περισσότερες πληροφορίες σχετικά με τη δημιουργία αντιγράφων ασφαλείας του μητρώου του συστήματος, ανατρέξτε στο ακόλουθο άρθρο της Γνωσιακής Βάσης της Microsoft:


135120 ρύθμιση παραμέτρων εργαλείο δημιουργίας αντιγράφων ασφαλείας για τη δημιουργία αντιγράφων ασφαλείας του μητρώου


Ιδιότητες

Αναγνωριστικό άρθρου: 153756 - Τελευταία αναθεώρηση: 10 Ιαν 2017 - Αναθεώρηση: 1

Σχόλια