-
Я не использую заранее создаваемый источник данных DSN. На машине под ХР в ADOConnection1.ConnectionString кодировку не указывала и русские буквы из базы отображались (в DBGrid). А под Вистой вместо русских букв кракозябры (в DBGrid).
Нашла ссылку
http://www.connectionstrings.com/?carrier=mysqlно строка типа Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;CharSet =UTF8;
(вместо UTF8 сз1251) ни к чему не привела.
В my.ini вроде всё прописано. БД на локальных компах.
Как правильно указать кодировку в ADOConnection1.ConnectionString ?
-
Я яе-то непонял, вам надо чтобы в ConnectionString были русские буквы или отображать данные, которые в базу введены?
-
Какая СУБД.
-
> [1] stas © (08.08.08 13:32)
смотри
> А под Вистой вместо русских букв кракозябры (в DBGrid).
-
вместо русских букв кракозябры (в DBGrid).
Мне кажется, что указывать надо в ADOConnection1.ConnectionString, но пример с указанной ссылкой не помогает.
-
Раиса © (08.08.08 13:35) [4]
какая СУБД???
-
> stas © (08.08.08 13:52) [5]
> какая СУБД???
Читать не умеешь?
-
> Плохиш © (08.08.08 13:55) [6]
> Читать не умеешь?
Ну зачем так со школьниками?
Он же и математику не знает, и геометрию. Но научится, дайте срок. Побольше...
-
Висту снести не предлагать ?
-
Игорь Шевченко © (08.08.08 14:58) [8]
У юзеров? И купить им все лицензионный ХР? :)
Суть-то: чтоб и в ХР, и в Висте работало.
Программа и работает, если настроить источник данных, но этого тоже не надо предлагать.
-
> У юзеров? И купить им все лицензионный ХР? :)
"даунгрейд" вреде бесплатен.
> Программа и работает, если настроить источник данных
когда подключаешь мастером и выбираешь "использовать строку подключения" (кнопка "сборка" рядом) то при выборе рабочего DSN он обычно переносит параметры в строку... остается только заменить имя DSN на драйвер и рабочая строка готова.
если не переносит, то это грустно но в принципе драйвер это делать не обязан, если же все перенесло но не работает, то вывод - "внешние" параметры не используются драйвером... это баг, драйвер нужно менять.
-
> Программа и работает, если настроить источник данных, но
> этого тоже не надо предлагать.
То есть если настроить то всё работает, но настраиать нельзя, я правильно понял?
-
sniknik © (08.08.08 15:44) [10]
Переносит, но не всё.
Provider=MSDASQL.1;Password=1;Persist Security Info=True;User ID=root;Data Source=fishery_local
Не хватает то чего надо: set names cp1251
Это для 3.51.12. Остальные 22 и 23 я не смотрела - переносят или нет. Но просто так тоже не работают. Я их тоже ставила
alex-drob © (08.08.08 15:45) [11]
Поняли правильно: программа должна работать без установки источника данный, коннект через строку подключения. И еще раз повторюсь: в Окнах ХР работает.
-
> Переносит, но не всё.
не на ту кнопку жмешь... (использовать имя источника данных) судя по характеру составленной строки.
-
sniknik © (08.08.08 16:24) [13]
А где та кнопку, на которую надо жать? Жму в Дельфях в ADOConnection...
-
> Жму в Дельфях в ADOConnection...
это вызов мастера. в нем и кнопки. именно про него написано. читай.
-
Я вроде так и делаю, а на выходе строка как написано выше:(08.08.08 16:15) [12]
Если через сборку, то вообще всё подвисает (и в ХР. и в Висте).
И ничего там нету про 1251...
-
> Если через сборку, то вообще всё подвисает (и в ХР. и в Висте).
не должно. проверь с другими драйверами (необязательно mysql, например с access (наверняка есть)).
может это таже проблема, только с другой стороны.
> И ничего там нету про 1251...
а чего ты там про него ждешь, хелпа чтоли?
максимум параметр CharSet инициализируется, и вообще откуда оно там будет, если "вообще всё подвисает"??? или всетаки строку получить удается?
-
Подвисает-подвисает на двух компах пробовала. Жду CharSet типа 1251 (не хелпа, естественно).
Строку не удалось получить ни на одном компе. Но надо через "сборку"?
Еще дома проверю. Спасибо. И с версиями коннектора проверю (у меня есть 12, 22,23)
-
> Но надо через "сборку"?
не самоцель. метод только для того, чтобы гарантированно правильно перенести параметры из того, что работает в то, что у тебя самому составить не получается.
т.к.
> Программа и работает, если настроить источник данных
-
sniknik © (08.08.08 17:52) [19]
Все верно. Понятно, что не "надо", а "можно".
Через "сборку" для Мускула (коннектор 3.51.12) зависает и на домашнем компе. Для Access "сборка" выдает строку.
А так хочется вставить строку с charset и чтобы она работала. Не знаю, что и делать.
-
Я когда-то пробовал сделать по документации
http://dev.mysql.com/doc/refman/5.1/en/myodbc-configuration-connection-parameters.htmlКодировку нужно указать в файле my.cnf
В строке соединения при помощи option нужно указать, что ODBC должно использовать my.cnf
option=65536 (это FLAG_USE_MYCNF)
Куда я помещал на клиенте файл my.cnf - уже не помню, но по тем же принципам, где этот файл размещается на сервере. У меня заработало.
Только это было давно, и я использовал версию 5.0. Кроме того, возможно, я не понял ваш вопрос.
-
palva © (08.08.08 23:01) [21]
Это или не то, не знаю, но почитала типа. Увидела "charset The character set to use for the connection. Added in 3.51.17. ". Значит, и не надо было пробовать 3.51.12. Спасибо.
Установила 3.51.23. Через "сборку" (не зависла!!!) увидела знакомые цифирки STMT=set names cp1251 (а я-то вставляла как в примере CharSet=...). Попробую в понедельник вставить в строку с ADOConnection1.ConnectionString, а то дома нету Висты (а в ХР и так работает). Если интересно, то сообщу о результате (надеюсь и мечтаю о положительном исходе).
За советы спасибо БОЛЬШОЕ sniknik ©.
-
Под Вистой получилось путем добавления в строку ADOConnection1.ConnectionString найденного STMT=set names cp1251 (нету кракозябров в строке DBGrid-а). А под ХР и без указания кодировки работает. Версия коннектора 3.51.23 была взята.