C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
ReconcileErrorForm, на русском
Лена
Отправлено: 27.09.2006, 15:45


Мастер участка

Группа: Участник
Сообщений: 501



В своей программе использую специализированную форму ReconcileErrorForm от Borland обработки ошибок при работе с базой данных. Эта форма находиться в репозитраии. Интерфейс окна я руссофицировала. Подскажите как руссофицировать сообщения об ошибках в этом окне. Рисунок прилагаю.

Присоединить изображение

Присоединить изображение

Admin
Отправлено: 27.09.2006, 19:18


Владимир

Группа: Администратор
Сообщений: 1190



Ну может попробовать по EReconcileError свойству ErrorCode
Вывод сообщения, как я понял, осуществлятся в FormCreate():
CODE
ErrorMsg->Text = FError->Message;


Вот в этом месте вместо этой строчки получать FError->ErrorCode
и по нему поставить свой блок типа switch() или if() в которых и
поместить сообщения на русском языке об ошибках.

Но это придется сначала найти все эти ErrorCode и выдаваемые
при них Message, перевести их на русский.
Лена
Отправлено: 28.09.2006, 11:41


Мастер участка

Группа: Участник
Сообщений: 501



Спасибо, теперь понятно где вносить изменения. Не знаете, где можно посмотреть список кодов ErrorCode с расшифровкой на английском? Что-то в справке не нахожу или надо искусственно создавать исключения при работе с базой и вычислять код ошибки самостоятельно?



Gedeon
Отправлено: 28.09.2006, 12:31


Ветеран

Группа: Модератор
Сообщений: 1742



ну зачем же, можно в инете поискать, а можно по h-файлам пройтись.
Лена
Отправлено: 15.10.2006, 19:17


Мастер участка

Группа: Участник
Сообщений: 501



Мне удалось найти расшифровку:
http://icmp.ru/man/dbms/pgsql/8.1/errcodes...s-appendix.html
http://www.postgresql.org/docs/8.1/static/...s-appendix.html

А здесь с переводом:
http://pgsql74.sourcesdb.com/r.php?num=1059

Подскажите начальный вид switch и где именно точно его надо разместить.
Спасибо.

Отредактировано Лена — 19.10.2006, 10:52
Admin
Отправлено: 15.10.2006, 21:37


Владимир

Группа: Администратор
Сообщений: 1190



Оформить в виде своей функции, типа
AnsiString GetPostgreSQLError( int ErrorCode )
в FormCreate() вместо
CODE
ErrorMsg->Text = FError->Message;

вызывать эту функцию
CODE
ErrorMsg->Text = GetPostgreSQLError( FError->ErrorCode );


А в GetPostgreSQLError() поместить этот switch или если кодов много -
оформить их в виде
CODE
map<int, AnsiString>
или сделать свой класс типа int,AnsiString.

Также может будет удобным поместить на отдельную форму
компонент ValueListEditor и все коды — в него. Тогда можно
сохранять эти коды/значения в файл, редактировать, читать из файла.
Лена
Отправлено: 16.10.2006, 09:49


Мастер участка

Группа: Участник
Сообщений: 501



Спасибо за подробный ответ!
Попробую реализовать. smile.gif

Вернуться в Работа с базами данных в C++Builder