Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 5.00/9: Рейтинг темы: голосов - 9, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 13.09.2012
Сообщений: 14

Builder 2010 Access UnicodeString

13.09.2012, 14:33. Показов 1907. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть проект в билдере 2010. Есть таблица access в ней поле типа Text.
В билдере с таблицей связан компонент TTable.
Не получается записать в базу unicode символы (азерб. язык). Т.Е. они записываются, но на месте "спец" буков (которые отличаются от русских или англ.) записываются вопросы.
Если ручками в базу записать нужный текст, то он в базе сохраняется нормально, но прочитать его тоже никак не получается (опять вопросы).
Есть идеи?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.09.2012, 14:33
Ответы с готовыми решениями:

Отчет MS Access в с++ Builder 2010
Привет! Создал отчет в самой базе Access. Например Report1 Можно ли его вызывать средствами c++ Builder 2010. Сам проект подключен к...

Подключение к базе данных в С++ Builder 2010
Здравствуйте! У меня возникла проблема, не могу подключиться к базе данных через С++ Builder 2010. Для этого я добавил элемент...

Метод Locate не хочет работать в C++ Builder 2010
Здравствуйте! Не подскажете в чем тут проблема. Пишу код: UnicodeString s1, s2; if ((InputQuery("Ввод...

26
 Аватар для Oxotnuk
78 / 78 / 6
Регистрация: 18.06.2009
Сообщений: 533
13.09.2012, 17:19
<<Если ручками в базу записать нужный текст, то он в базе сохраняется нормально, но прочитать его тоже никак не получается (опять вопросы).

Ну так наверное дело в том,что нет такой кодировки(либо не поддерживается)?
0
 Аватар для Kabak
159 / 145 / 14
Регистрация: 03.02.2012
Сообщений: 788
Записей в блоге: 1
13.09.2012, 21:15
Посмотреть в какой кодировке сама база.
0
0 / 0 / 0
Регистрация: 13.09.2012
Сообщений: 14
14.09.2012, 09:24  [ТС]
Если в билдере вместо компонента TTable вставить компонент TADOTable, то с той же базой все получается, но переделывать на новый компонент довольно много придется и TADOTable не имеет свойства CachedUpdates, что для меня важно.

Добавлено через 1 час 26 минут
Попробовал обрабатывать запросы..Та же история. Tquery не работает, а TADOQery работает. Например:
Так не работает:
TQuery1->SQL->Clear();
TQuery1->SQL->Add(L"INSERT INTO Table_Master VALUES ('Əyilmə')");
TQuery1->ExecSQL();
А так да:
TADOQuery1->SQL->Clear();
TADOQuery1->SQL->Add(L"INSERT INTO Table_Master VALUES ('Əyilmə')");
TADOQuery1->ExecSQL();
0
 Аватар для Kabak
159 / 145 / 14
Регистрация: 03.02.2012
Сообщений: 788
Записей в блоге: 1
14.09.2012, 11:00
Так посмотрите кодировку базы. В какой кодировке база у вас ?

Поиграйтесь с кодировкой базы. Попробуйте поставить cp1251
0
0 / 0 / 0
Регистрация: 13.09.2012
Сообщений: 14
14.09.2012, 11:51  [ТС]
Так вроде база .mdb в таблицах типа text имеют кодировку unicode..Не понимаю где поменять кодировку базы
0
 Аватар для Kabak
159 / 145 / 14
Регистрация: 03.02.2012
Сообщений: 788
Записей в блоге: 1
14.09.2012, 16:23
А если на компьютере во время копирования/ сохранения установлен азерб. язык т.е. текущий активный язык не русский и не английский, а азербайджанский. Получается сохранить ?
0
0 / 0 / 0
Регистрация: 13.09.2012
Сообщений: 14
17.09.2012, 08:18  [ТС]
Не получаетсә все равно
0
 Аватар для Kabak
159 / 145 / 14
Регистрация: 03.02.2012
Сообщений: 788
Записей в блоге: 1
17.09.2012, 10:52
А в какой момент перестало работать ? Я так понимаю, что раньше всё работало.
0
0 / 0 / 0
Регистрация: 13.09.2012
Сообщений: 14
17.09.2012, 10:59  [ТС]
Раньше не было задачи хранить тексты на языках отличных от русского или английского, поэтому думаю что тоже не работало.
0
 Аватар для Kabak
159 / 145 / 14
Регистрация: 03.02.2012
Сообщений: 788
Записей в блоге: 1
17.09.2012, 12:14
А сам проект переведён на Unicode ? Может стоит попробовать сам проект откомпилировать как Unicode и компонент нормально заработает.

Вот тут я задавал вопрос и мне помогли с переводом проекта
0
0 / 0 / 0
Регистрация: 13.09.2012
Сообщений: 14
17.09.2012, 16:30  [ТС]
Перевел.. Результат тот же.. В новом пустом проекте созданном в юникоде тоже самое..видать компонент не работает должным образом просто
0
 Аватар для Kabak
159 / 145 / 14
Регистрация: 03.02.2012
Сообщений: 788
Записей в блоге: 1
17.09.2012, 16:43
Я думаю, что проблема не с TTable, а со взаимодействием с базой. На каком-то этапе происходит перекодировка данных посылаемых в базу или считанных из неё.
0
0 / 0 / 0
Регистрация: 13.09.2012
Сообщений: 14
18.09.2012, 12:47  [ТС]
В таком случае это можно настроить где-то...но вот где?
0
 Аватар для Kabak
159 / 145 / 14
Регистрация: 03.02.2012
Сообщений: 788
Записей в блоге: 1
18.09.2012, 13:12
Можно попробовать сконвертировать строку, например, в AnsiString, перед отправкой в базу.

Собственно, напишите тут пример кода, как именно данные в базу засылаете ?
0
0 / 0 / 0
Регистрация: 13.09.2012
Сообщений: 14
18.09.2012, 14:25  [ТС]
Например так:
Table1->Open();
Table1->Edit();
Table1->Append();
Table1StringField1->Value = Edit1->Text;
Table1->Post();
Table1->Close();

Добавлено через 27 минут
В билдере если зайти в sql-explorer (через компоненту TTable), то можно просматривать данные таблиц. (для которых соответственно есть пользовательский DSN), и если ручками через аксесс забить туда юникод символы, то соответственно через сам аксес они отображаются правильно, но в sql-explorer они все равно отображаются вопросами..
0
 Аватар для Kabak
159 / 145 / 14
Регистрация: 03.02.2012
Сообщений: 788
Записей в блоге: 1
18.09.2012, 14:48
Table1StringField1->Value = Edit1->Text;

после Table1 не нужно "->" указывать ?

А если попробовать так ?
C++
1
Table1->StringField1->Value = AnsiString(Edit1->Text).c_str();
0
0 / 0 / 0
Регистрация: 13.09.2012
Сообщений: 14
18.09.2012, 14:51  [ТС]
Ничего не меняется так
0
 Аватар для Kabak
159 / 145 / 14
Регистрация: 03.02.2012
Сообщений: 788
Записей в блоге: 1
18.09.2012, 15:01
Кстати, а в компоненте TTable у вас какой тип кодировки таблицы установлен в параметре Table1->TableType - ttDefault ?
0
0 / 0 / 0
Регистрация: 13.09.2012
Сообщений: 14
18.09.2012, 15:02  [ТС]
да именно так
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.09.2012, 15:02
Помогаю со студенческими работами здесь

Программное создание mdb в Builder 2010 с ADO
Информации в нете хоть и много, но она раздроблена. как в 2010 Билдере создать программно базу данных Акцесс, и в ней создать таблицу?...

Подключение к базе данных через C++ Builder 2010
Здравствуйте! Пытаюсь подключиться к базе данных base.fdb, находящейся в моей папке d:\student\my\base.fdb через код: void...

UnicodeString в с++ builder XE
чем в типе UnicodeString между собой отличаются c_str(); t_str(); w_str();?

Как использовать компоненты скомпилированные для C++ Builder 2007 в C++ Builder 2010?
Народ! Такая проблема... Есть набор компонентов т.н. Dicom VCL. Сайт производителя - http://www.medicalconnections.co.uk/. У них на...

Работа с объектами в C++ Builder 2010 (RAD 2010)
Плавно перехожу на программирование в Builder, появляется очень много вопросов по работе со стандартными встроенными объектами (формами). ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru