Проблема с кодировкой

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
dcdlab
Начинающий
Начинающий
 
Сообщения: 22
Зарегистрирован: 04.06.2009 (Чт) 2:14

Проблема с кодировкой

Сообщение dcdlab » 06.08.2009 (Чт) 11:29

Есть база данных в MySQL. Связь с ней осуществляется через ADO Control по драйверу ODBC MySQL 3.51, вся база находится в кодировке CP-1251.
В системе установлены следующие ключи: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage\
1250 = с_1250.nls
1251 = с_1251.nls
1252 = с_1252.nls

Выполняется операция изменения записи базы данных а именно запрос:

Код: Выделить всё
UPDATE ucheniki SET protocol='" & nhtm & "' WHERE login = 'igor0001'"


где nhtm - переменная типа string с русским и английским текстом.

После обновления записи вместо русского текста имеем Я идиот! Убейте меня, кто-нибудь!Я идиот! Убейте меня, кто-нибудь!?.

По идее данные из VB приходят UTF-8 (возможно я не прав). Пробывал сделать:
Код: Выделить всё
SET character_set_client = utf8
SET character_set_connection = cp1251

И никакого результата. Также результата не дают:
Код: Выделить всё
SET NAMES cp1251
или
Код: Выделить всё
SET NAMES utf8
.

Пробывал даже так:
Код: Выделить всё
UPDATE ucheniki SET protocol=CONVERT('" & nhtm & "' USING cp1251) WHERE login = 'igor0001'"


или

Код: Выделить всё
UPDATE ucheniki SET protocol=CONVERT('" & nhtm & "' USING utf8) WHERE login = 'igor0001'"


никакого результата. Подскажите как быть?

aleksmir
Обычный пользователь
Обычный пользователь
 
Сообщения: 88
Зарегистрирован: 10.08.2009 (Пн) 13:17

Re: Проблема с кодировкой

Сообщение aleksmir » 08.01.2010 (Пт) 10:14

1. Я сразу после установки коннекта с MySQL выполняю следующие запросы к базе MySQL и русские буквы после этого воспринимаются сервером нормально:

Код: Выделить всё
set character_set_client='cp1251'
set character_set_results='cp1251'
set collation_connection='cp1251_general_ci'


2. В базе MySQL настройки:

Код: Выделить всё
COLLATION_CONNECTION = cp1251_general_ci
COLLATION_DATABASE = cp1251_general_ci
COLLATION_SERVER = cp1251_general_ci


3. В драйвере ODBC все настройки по-умолчанию
.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot и гости: 52

    TopList