-
Здравствуйте!
Я пытаюсь работать с базой данных MySQL через компоненты ADO (драйвера ODBC). Пытаюсь вставить запись в таблицу следующим образом:
mainQuery.SQL.Append('INSERT INTO test (text) VALUES (:text_);'); mainQuery.Parameters.ParamByName('text_').Value:=t estDialog.full_name mainQuery.ExecSQL();
Проблема в том, что этот способ не работает с русскими символами (вставляются знаки '?'). Причём редактирование той же базы посредством компонентов типа DBGrid работает нормально.
В чём проблема? Понятно, что нужно подшаманить как-то с кодировкой, но как именно?
Параметры я пробовал создавать по-разному:
mainQueryParameters.CreateParameter('test_',ftWide String,pdInput, 300, testDialog.full_nameEdit.Text); mainQueryParameters.CreateParameter('test_',ftStri ng,pdInput, 300, testDialog.full_nameEdit.Text);
со всеми вариантами-тоже самое. Сервер- MySQL 5.1.30, Delphi 7. Кодировка базы данных-cp1251
-
> > prezervogaz (03.04.10 14:06)
> Я пытаюсь работать с базой данных MySQL
Забей. Возьми что нибудь нормальное.
-
> что нужно подшаманить как-то с кодировкой, но как именно? проверить всю цепочку, параметр - соединение - драйвер - сервер везде должна быть одна кодировка. проверь например без параметра, прописать русскими в запросе (не то чтобы так постоянно нужно делать, но проверка исключит параметр, и если получится ясно где не настроено)
+ где то видел, есть драйвера у которых этого нет в соединении, но можно задавать командой типа SET names xxx COLLATE xxxx.
|