Столбец таблицы MDB не работает с Unicode? - PullRequest
0 голосов
/ 14 февраля 2012

Я делаю объект OleDb.OleDbDataAdaptor для заполнения объекта DataTable.В конструкции OleDbDataAdaptor я инициализирую его так:

Dim adapter As New OleDb.OleDbDataAdapter(sql, myConnection)

, где sql - моя строка запроса, подобная этой:

Dim sql = "SELECT * FROM DBTable TC WHERE TC.Text=N'Criteria'"

Я использую предшествующую заглавную букву N, потому что поле«Текст» в таблице «DBTable» должен быть в юникоде.И myConnection представляет соединение с одним из моих файлов MDB, где определяется DBTable.

Однако, когда я выполняю adaptor.Fill (myDataTable), он завершается неудачно и выдает исключение: Синтаксическая ошибка (отсутствует оператор) в выражении запроса 'TC.Text = N'Criteria' '.Кто-нибудь знает, что здесь произошло?Я узнал, что для того, чтобы продолжить текст Unicode, N необходимо.Другой вопрос, как я могу убедиться, что поле в файле MDB действительно в Unicode?Потому что я вижу только то, что поле Тип данных имеет значение «Текст», и я использую Access 2003, поэтому я могу только предполагать, что оно в Юникоде.На самом деле я включаю сжатие Юникодом для поля, и, как вы можете видеть в тексте «Критерии», где все равно нет специальных символов.

Спасибо за любую помощь!

1 Ответ

0 голосов
/ 15 февраля 2012

На основании ответа @Remou выясняется, что для базы данных Access предыдущий заглавный N не требуется для текста в Юникоде. N требуется только для БД SQL Server

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...