Σε μια WinForms εφαρμογή που έχω φτιάξει τα δεδομένα αποθηκεύονται σε αρχείο Access. Ένας χρήστης μου, ο οποίος εδώ και ενάμιση περίπου χρόνο χρησιμοποιεί την εφαρμογή χωρίς πρόβλημα, μου ανέφερε ότι τις τελευταίες ημέρες που προσπαθεί να τρέξει το πρόγραμμα εμφανίζεται ένα σφάλμα με το εξής μήνυμα:
"Η μορφοποίηση της συμβολοσειράς προετοιμασίας δε συμμορφώνεται με την προδιαγραφή που ξεκινάει γύρω από το δείκτη 66" (Α ρε άτιμα ελληνικά!!).
Όπως ήταν φυσικό, στην αρχή δε μπορούσα να καταλάβω τίποτα! Είδα και αποείδα, και λέω "Ρε συ, δε δοκιμάζεις να βάλεις το σφάλμα στο google translate;". Η έκπληξη που πήρα ήταν πολύ μεγάλη, καθώς η αγγλική μετάφραση ήταν πολύ κοντά στο πραγματικό σφάλμα το οποίο είναι:
"Format of the initialization string does not conform to specification starting at index 66".
Αυτό υποδηλώνει πρόβλημα με το connection string. Το θέμα είναι, όμως, γιατί τώρα; Τέτοια σφάλματα εμφανίζονται συνήθως στη φάση του development. Το folder στο οποίο είναι εγκατεστημένη η βάση λαμβάνεται από το Environment.SpecialFolder.ApplicationData enumeration. Οπότε στην αρχή σκέφτηκα το τραβηγμένο σενάριο ότι υπάρχει κάποιος περίεργος χαρακτήρας που δεν "μεταφράζεται" σωστά από το Environment.GetFolderPath() method. Ύστερα, όμως, έπεσα πάνω σ' αυτό και αυτό.
Οι ερωτήσεις που έχω να κάνω είναι δύο:
1. Υπάρχει κάτι παραπάνω που πρέπει να ξέρω πριν δώσω το link με την πιθανή λύση στον χρήστη; Να σημειώσω εδώ ότι η εφαρμογή είναι εγκατεστημένη σε Windows Vista (μάλλον Home Premium ed.).
2. Αν όντως εκεί βρίσκεται το πρόβλημα, εσείς τι κάνετε σε ανάλογες περιπτώσεις; Λέτε στο χρήστη να σκαλίσει τo registry;
Ακόμα κι ένας άνθρωπος μπορεί ν' αλλάξει τον κόσμο. Μη θέλεις να κυβερνήσεις. Απλά δείξε το μονοπάτι κι ο κόσμος θ' ακολουθήσει!!