powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / локализация ошибок
4 сообщений из 4, страница 1 из 1
локализация ошибок
    #33276897
Nauro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
работаю с СУБД Sybase через ODBC.
есесно часто возникают ошибки которые генерятся самой БД, например какие-нить constrains:
авторERROR [HY000] [MERANT][ODBC Sybase ASE driver][SQL Server]Check constraint violation occurred, dbname = 'mydb', table name = 'mytable', constraint name = 'my_constrains_name'.
как мне эту ошибочку выдавать так как я хочу, например:
авторПри проверке правильности значений возникла ошибка, запись с таким значением поля уже существует.?
Програмно есть вариант такой: можно парсить тескт ошибки, и имея какой то словарик, где каждому значению "my_constrains_name" ставится текст, просто запрашивать текст по значению и выводить на екран.
Но это ИМХО, изврат. можно ли по другому?
...
Рейтинг: 0 / 0
локализация ошибок
    #33276932
Фотография Рыжий Кот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ваш вариант лучший, поскольку даже локализованный вариант не всегда понятен пользователю. Т.е. часто требуется перевод с русского на русский
...
Рейтинг: 0 / 0
локализация ошибок
    #33277062
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nauro wrote:

> Програмно есть вариант такой: можно парсить тескт ошибки, и имея какой
> то словарик, где каждому значению "my_constrains_name" ставится текст,
> просто запрашивать текст по значению и выводить на екран.

Идея нормальная, только я бы вместо парсинга сообщений брал ID ошибки.
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
локализация ошибок
    #33277485
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nauro авторERROR [HY000] [MERANT][ODBC Sybase ASE driver][SQL Server]Check constraint violation occurred, dbname = 'mydb', table name = 'mytable', constraint name = 'my_constrains_name'.
как мне эту ошибочку выдавать так как я хочу, например:
авторПри проверке правильности значений возникла ошибка, запись с таким значением поля уже существует.?
Програмно есть вариант такой: можно парсить тескт ошибки, и имея какой то словарик, где каждому значению "my_constrains_name" ставится текст, просто запрашивать текст по значению и выводить на екран.
Но это ИМХО, изврат. можно ли по другому?
Если интересует именно такие сообщения как в приведенном примере, то в принципе достаточно будет взять русскую dll с сообщениями об ошибках и все. Не уверен правда есть ли в поставке ASE такая dll :)

Но по хорошему, лучше всего будет: Зная что именно клиент пытается сделать и получив ошибку, прочитать SQLState (в данном примере это HY000 ) и на основе этих двух знаний (что клиент хотел и как сервер ругнулся) выдавать смысловое сообщение об ошибке.
Естественно некоторый парсинг стандартного сообщения тоже может быть полезным. Например при операции сохранения накладной может прийти ошибка с кодом 23503 No primary key value for foreign key '%1' in table '%2' вычленяешь названия полей и/или таблиц из %1 и %2 и ругаешь пользователя соответственно: "Накладная от неизвестного поставщика" или "Товар неизвестного типа". Это будет для простого пользователя намного понятней чем загадочное: "нет первичного ключа для внешнего ключа ААА в таблице БББ" :)
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / локализация ошибок
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]