Конференция "Базы" » Как в ADOConnection1.ConnectionString указать для русских букв [D7, MySQL]
 
  • Раиса © (08.08.08 13:23) [0]
    Я не использую заранее создаваемый источник данных 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 ?
  • stas © (08.08.08 13:32) [1]
    Я яе-то непонял, вам надо чтобы в ConnectionString были русские буквы или отображать данные, которые в базу введены?
  • stas © (08.08.08 13:34) [2]
    Какая СУБД.
  • alex-drob © (08.08.08 13:35) [3]
    > [1] stas ©   (08.08.08 13:32)


    смотри


    > А под Вистой вместо русских букв кракозябры (в DBGrid).
  • Раиса © (08.08.08 13:35) [4]
    вместо русских букв кракозябры (в DBGrid).

    Мне кажется, что указывать надо в ADOConnection1.ConnectionString, но пример с указанной ссылкой не помогает.
  • stas © (08.08.08 13:52) [5]
    Раиса ©   (08.08.08 13:35) [4]
    какая СУБД???
  • Плохиш © (08.08.08 13:55) [6]

    > stas ©   (08.08.08 13:52) [5]

    > какая СУБД???

    Читать не умеешь?
  • Johnmen © (08.08.08 13:58) [7]

    > Плохиш ©   (08.08.08 13:55) [6]
    > Читать не умеешь?

    Ну зачем так со школьниками?
    Он же и математику не знает, и геометрию. Но научится, дайте срок. Побольше...
  • Игорь Шевченко © (08.08.08 14:58) [8]
    Висту снести не предлагать ?
  • Раиса © (08.08.08 15:20) [9]
    Игорь Шевченко ©   (08.08.08 14:58) [8]
    У юзеров? И купить им все лицензионный ХР? :)
    Суть-то: чтоб и в ХР, и в Висте работало.
    Программа и работает, если настроить источник данных, но этого тоже не надо предлагать.
  • sniknik © (08.08.08 15:44) [10]
    > У юзеров? И купить им все лицензионный ХР? :)
    "даунгрейд" вреде бесплатен.

    > Программа и работает, если настроить источник данных
    когда подключаешь мастером и выбираешь "использовать строку подключения" (кнопка "сборка" рядом) то при выборе рабочего DSN он обычно переносит параметры в строку... остается только заменить имя DSN на драйвер и рабочая строка готова.
    если не переносит, то это грустно но в принципе драйвер это делать не обязан, если же все перенесло но не работает, то вывод - "внешние" параметры не используются драйвером... это баг, драйвер нужно менять.
  • alex-drob © (08.08.08 15:45) [11]
    > Программа и работает, если настроить источник данных, но
    > этого тоже не надо предлагать.

    То есть если настроить то всё работает, но настраиать нельзя, я правильно понял?
  • Раиса © (08.08.08 16:15) [12]
    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]
    > Переносит, но не всё.
    не на ту кнопку жмешь... (использовать имя источника данных) судя по характеру составленной строки.
  • Раиса © (08.08.08 16:27) [14]
    sniknik ©   (08.08.08 16:24) [13]  
    А где та кнопку, на которую надо жать? Жму в Дельфях в ADOConnection...
  • sniknik © (08.08.08 16:30) [15]
    > Жму в Дельфях в ADOConnection...
    это вызов мастера. в нем и кнопки. именно про него написано. читай.
  • Раиса © (08.08.08 16:44) [16]
    Я вроде так и делаю, а на выходе строка как написано выше:(08.08.08 16:15) [12]
    Если через сборку, то вообще всё подвисает (и в ХР. и в Висте).
    И ничего там нету про 1251...
  • sniknik © (08.08.08 16:56) [17]
    > Если через сборку, то вообще всё подвисает (и в ХР. и в Висте).
    не должно. проверь с другими драйверами (необязательно mysql, например с access (наверняка есть)).
    может это таже проблема, только с другой стороны.

    > И ничего там нету про 1251...
    а чего ты там про него ждешь, хелпа чтоли?
    максимум параметр CharSet инициализируется, и вообще откуда оно там будет, если "вообще всё подвисает"??? или всетаки строку получить удается?
  • Раиса © (08.08.08 17:01) [18]
    Подвисает-подвисает на двух компах пробовала. Жду CharSet типа 1251 (не хелпа, естественно).
    Строку не удалось получить ни на одном компе. Но надо через "сборку"?
    Еще дома проверю. Спасибо. И с версиями коннектора проверю (у меня есть 12, 22,23)
  • sniknik © (08.08.08 17:52) [19]
    > Но надо через "сборку"?
    не самоцель. метод только для того, чтобы гарантированно правильно перенести параметры из того, что работает в то, что у тебя самому составить не получается.
    т.к.
    > Программа и работает, если настроить источник данных
  • Раиса © (08.08.08 19:06) [20]
    sniknik ©   (08.08.08 17:52) [19]
    Все верно. Понятно, что не "надо", а "можно".
    Через "сборку" для Мускула (коннектор 3.51.12) зависает и на домашнем компе. Для  Access "сборка" выдает строку.  
    А так хочется вставить строку с charset и чтобы она работала. Не знаю, что и делать.
  • palva © (08.08.08 23:01) [21]
    Я когда-то пробовал сделать по документации
    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. Кроме того, возможно, я не понял ваш вопрос.
  • Раиса © (09.08.08 00:16) [22]
    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 ©.
  • Раиса © (11.08.08 23:54) [23]
    Под Вистой получилось путем добавления в строку ADOConnection1.ConnectionString найденного STMT=set names cp1251   (нету кракозябров в строке DBGrid-а).  А под ХР и без указания кодировки работает. Версия коннектора 3.51.23 была взята.
 
Конференция "Базы" » Как в ADOConnection1.ConnectionString указать для русских букв [D7, MySQL]
Есть новые Нет новых   [134442   +13][b:0][p:0.001]