Вверх ↑
Этот топик читают: Гость
Ответов: 16884
Рейтинг: 1239
#1: 2012-09-08 21:56:03 ЛС | профиль | цитата
nesco, кто-то ( ) говорил, что одним CharSet-ом можно перекодировать результат запроса к БД.
МТ не хочет понимать.
Покажи как.
code_29015.txt
------------ Дoбавленo в 21.55:
1. Результат запроса к БД в кодировке UTF-8 получаем в МТ-потоке.
2. MT_String преобразовываю в строку с делимитером.
3. Полученную строку с делимитером пропускаю через CharSet UTF-8->ANSI
4. Преобразовываю обратно в МТ-поток (т.к. использую MTStrTbl)
Д у р д о м.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1code_29015.txt [691B] [132]
Разработчик
Ответов: 26164
Рейтинг: 2127
#2: 2012-09-08 23:30:35 ЛС | профиль | цитата
Tad писал(а):
одним CharSet-ом можно перекодировать результат запроса к БД

Можно, используя следующие точки MTStrTbl

CodePageSet=На эту точку выдается подстрока при добавлении в таблицу для декодирования в нужную кодовую страницу. После декодирования, подстрока должна вернуться на эту же точку
CodePageGet=На эту точку выдается подстрока при получении из таблицы для декодирования в нужную кодовую страницу. После декодирования, подстрока должна вернуться на эту же точку

Дальше пояснять или сам разберешься
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#3: 2012-09-09 00:28:59 ЛС | профиль | цитата
Это хорошо, но не всегда мне нужна MTStrTbl.
Запрос для ComboBox:
#pas
Add(Charset,6940907,252,189)
{
Type=7
link(onCharset,1220742:doMT,[])
}
Add(MT_String,263962,196,189)
{
link(onResult,6940907:doCharset,[])
}
Add(MT_String,1220742,308,182)
{
link(onResult,244793:doAdd,[])
}
Add(ComboBox,244793,364,182)
{
Left=620
Top=55
}
Add(DSC_Query,6170010,133,189)
{
SQL="SELECT name,id FROM tabl ORDER BY name;"
link(onQuery,263962:doStr,[])
}
Если с десяток ComboBox-ов, то ещё та стройка века получается.Нужен компонент для MTCharSet или нет ?

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26164
Рейтинг: 2127
#4: 2012-09-09 00:47:21 ЛС | профиль | цитата
Tad писал(а):
Нужен компонент для MTCharSet или нет ?

Ну так и займись, если он тебе нужен.

PS. А что, сам движок не может переводить в нужную кодировку
------------ Дoбавленo в 00.46:
Tad писал(а):
Запрос для ComboBox

Погодь, а когда это у нас ComboBox по doAdd MT понимать стал Это что-то новое
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#5: 2012-09-09 09:24:22 ЛС | профиль | цитата
nesco писал(а):
а когда это у нас ComboBox по doAdd MT понимать стал ?
Не только понимает, но и результат в MT выдает.
code_29024.txt
Чё, новость ?
Ты же вроде сам делал.
А я сто лет пользуюсь. Благодать.
------------ Дoбавленo в 09.23:
nesco писал(а):
А что, сам движок не может переводить в нужную кодировку
А вот это нужно посмотреть. Не возникало такой мысли.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1code_29024.txt [1.2KB] [171]
Разработчик
Ответов: 26164
Рейтинг: 2127
#6: 2012-09-09 12:40:42 ЛС | профиль | цитата
Tad писал(а):
Ты же вроде сам делал

Тю! Я че-то не про тот MT думал, а про поток строк А эту MT мульку делали в основном для ListBoх-a, вроде.
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#7: 2012-09-09 21:51:00 ЛС | профиль | цитата
nesco писал(а):
А эту MT мульку делали в основном для ListBoх-a, вроде.
Да она, вроде, во всех листах работает.
------------ Дoбавленo в 21.50:
.......
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Гость
Ответов: 17029
Рейтинг: 0
#8: 2012-09-09 21:51:30 правка | ЛС | профиль | цитата


Редактировалось 4 раз(а), последний 2025-01-11 06:17:56
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#9: 2012-09-09 21:53:06 ЛС | профиль | цитата
Вот что получилось.
code_29030.txt
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1code_29030.txt [1KB] [190]
Разработчик
Ответов: 26164
Рейтинг: 2127
#10: 2012-09-09 22:36:09 ЛС | профиль | цитата
Tad писал(а):
Вот что получилось

Что-то уж очень частный случай, только в одну сторону и только одна кодировка. Зачем-то оставлено преобразование в делимитерную строку и обратно.
Тут я вообще не понял -- на кой черт
Сразу, что ли, нельзя было преобразовать
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#11: 2012-09-09 22:48:05 ЛС | профиль | цитата
nesco писал(а):
Зачем-то оставлено преобразование в делимитерную строку и обратно.
Тут я вообще не понял -- на кой черт
Не всегда пользуюсь MTStrTbl. Иногда вполне устраивает StringTable.
nesco писал(а):
только в одну сторону
А во вторую сторону вполне хватает компонента CharSet.
nesco писал(а):
Что-то уж очень частный случай
Почти все (чужие) SQLite БД на UTF-8, а пакет HiAsm.Windows, думаю объяснять не надо, увы 1251. Частный случай.
------------ Дoбавленo в 22.47:
nesco писал(а):
только одна кодировка
потому что IC. Если создавать компонент, что можно и выбор кодировок добавить.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 11
Рейтинг: 1
#12: 2012-09-10 11:21:47 ЛС | профиль | цитата
попробуйте после подключения к БД выполнить такой запрос
#sql
set names cp1251;
Для MySql работает
Отдает результат запроса сразу в 1251
карма: 0

0
12
Сообщение
...
Прикрепленные файлы
(файлы не залиты)