|
|
|
Динамическое формирование запроса
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Использую MySQL 4.1, С++ Builder 6.0, ODBC через компоненты ADO. В программе динамически формируется запрос (несколько конъюнктивных членов в зависимости от числа ключей). Но когда в качестве ключа указывается строка, записанная кириллицей, то сервер ничего не находит. Хотя, если тот же запрос зашить в свойство SQL компонента TADOQuery и потом, во время выполнения программы, записать в параметры знчения, то все ищется прекрасно. Вот как я формирую запрос: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2005, 07:11:00 |
|
||
|
Динамическое формирование запроса
|
|||
|---|---|---|---|
|
#18+
Очевидно, проблема в кодировке. Сравните, в какой кодировке отсылается русская строка в запросе, и в какой кодировке содержимое базы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2005, 17:36:03 |
|
||
|
Динамическое формирование запроса
|
|||
|---|---|---|---|
|
#18+
Все это я проверил первым делом. Искал лишние пробелы и т.д. Решилось все просто (непонятно, почему): удалил все таблицы, создал их заново и загрузил снова все данные. В чем была причина, я там и не понял ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2005, 20:18:29 |
|
||
|
Динамическое формирование запроса
|
|||
|---|---|---|---|
|
#18+
Значит индексы побились. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2005, 22:03:35 |
|
||
|
Динамическое формирование запроса
|
|||
|---|---|---|---|
|
#18+
Но теперь еще одна проблема: при исполтзовавнии в запросе латинских символов (параметр поиска) все нормально, а при задании значения ключа кириллицей запрос отрабатывает myQuery->Active = true; while (!myQuery->Eof) // Есть выбранные строки, тут все в порядке { ... myQuery->Next(); // Выбрасывает исключение EDatabaseError: Поставщик или другая службка вернула значение E_FAIL } Причем это только для русских букв. Что-то странно все это ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2005, 07:02:11 |
|
||
|
Динамическое формирование запроса
|
|||
|---|---|---|---|
|
#18+
Еще несколько экспериментов показали, что такое поведение относится не только к запросам с кириллицей... Метод Next может отработать несколько раз и потом выбросить исключение. Мне кажется, что MySQL здесь ни при чем. Что-то поставщик даных мутит. Это все в целом называется MDAC, я правильно понял? М.б., скачать обновления? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2005, 08:24:29 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=33228572&tid=1853752]: |
0ms |
get settings: |
15ms |
get forum list: |
24ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
102ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 246ms |
| total: | 461ms |

| 0 / 0 |
