Αυτό που λένε και τα προηγούμενα posts είναι ότι το λάθος είναι στην ίδια την εφαρμογή και όχι στον SQL Server ή σε κάποια παράμετρο. Έχεις ορίσει varchar αντί για nvarchar πεδία και αποθηκεύεις ASCII χαρακτήρες αντί για Unicode. Κατά πάσα πιθανότητα αντί να χρησιμοποιείς parameterized queries φτιάχνεις το SQL statement μέσα στον κώδικα με αποτέλεσμα τα δεδομένα να πηγαίνουν στον server ως ASCII. Τα ??? είναι το αποτέλεσμα όταν ο OLEDB Driver προσπαθεί να μετατρέψει κείμενο από ένα codepage σε άλλο και αποτυγχάνει.
Η λύση είναι η ίδια όπως και στα προηγούμενα posts. Άλλαξε τον τύπο των πεδίων σε nvarchar, στείλε Unicode δεδομένα και χρησιμοποίησε parameterized queries αντί για χειροποίητα sql statements. Ακόμα καλύτερα, χρησιμοποίησε κάποιο ORM το οποίο θα φροντίσει να φτιάξει τα κατάλληλα statements από μόνο του.
Επαναλαμβάνω, το πρόβλημα δεν οφείλεται στον SQL Server. Το ίδιο ακριβώς πρόβλημα θα είχες με οποιαδήποτε βάση, σε οποιοδήποτε λειτουργικό - είτε αυτό λέγεται SQL Server πάνω από Windows, είτε Oracle πάνω από Unix.
Παναγιώτης Καναβός, Freelancer
Twitter: http://www.twitter.com/pkanavos