Войти
NeoBooker.ru
Добро пожаловать к нам в гости!
Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
Страница 1 из 11
Модератор форума: Peter, DEMBEL, YURIY 
Форум NeoBook » Всё о программе NeoBook » Общие вопросы по NeoBook » Получить номер ошибки по ее тексту.
Получить номер ошибки по ее тексту.
mishemДата: Пт, 08 Января 2016, 17:32 | Сообщение # 1
Эксперт форума
Встала задача отловить по тексту ошибки ее номер.

Именно номер. Суть... Заметил что в плагине NeoBookDBPro (может и в других каких) сообщения об ошибке выводятся те, которые заложены в системе. То есть нет смысла отлавливать ошибку по тексту. Если система будет установлена например английская, то текст будет на английском языке.

Нужно как то по тексту ошибки получить ее номер и уже от номера отталкиваться что дальше делать.

Чтобы более понятно было.
Открываю файл базы данных, но не знаю запаролена она или нет. Если база данных запаролена, появляется окно с текстом "Ошибочный пароль". В принципе сначала решил что можно отключить отображение ошибки и выводить свое сообщение типа "Введите пароль...".

Но! Ведь файл базы данных может быть не запоролен, а просто к примеру поврежден, или попытались открыть вообще какой то сторонний файл, тогда появится ошибка "Нераспознаваемый формат базы данных: ....." (Кто такой перевод делал, руки оторвать бы...) Вот здесь и получается что при этой ошибке нет смысла выводить окно о вводе пароля, а должно быть сообщение о том что неизвестный формат базы.

Я так понимаю что без плагина никак не обойтись. redface


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
СообщениеВстала задача отловить по тексту ошибки ее номер.

Именно номер. Суть... Заметил что в плагине NeoBookDBPro (может и в других каких) сообщения об ошибке выводятся те, которые заложены в системе. То есть нет смысла отлавливать ошибку по тексту. Если система будет установлена например английская, то текст будет на английском языке.

Нужно как то по тексту ошибки получить ее номер и уже от номера отталкиваться что дальше делать.

Чтобы более понятно было.
Открываю файл базы данных, но не знаю запаролена она или нет. Если база данных запаролена, появляется окно с текстом "Ошибочный пароль". В принципе сначала решил что можно отключить отображение ошибки и выводить свое сообщение типа "Введите пароль...".

Но! Ведь файл базы данных может быть не запоролен, а просто к примеру поврежден, или попытались открыть вообще какой то сторонний файл, тогда появится ошибка "Нераспознаваемый формат базы данных: ....." (Кто такой перевод делал, руки оторвать бы...) Вот здесь и получается что при этой ошибке нет смысла выводить окно о вводе пароля, а должно быть сообщение о том что неизвестный формат базы.

Я так понимаю что без плагина никак не обойтись. redface

Автор - mishem
Дата добавления - 08 Января 2016 в 17:32
DEMBELДата: Сб, 09 Января 2016, 07:13 | Сообщение # 2
Наш дизайнер
Проще Peter'a попросить добавить в плагин отдельной командой вызов GetLastError
Хотя неизвестно что будет выдавать, может у плагинов еще какие-то свои ошибки записываются в [LastError], допустим если база запаролена то может вряд-ли будет возникать именно системная ошибка. И ты уже через переменную не отличишь чья это ошибка, системы или плагина. Тогда наверное нужно еще перед выполнением команды NeoBookDBPro сбрасывать отчет системных ошибок - SetLastError, а потом смотреть, если GetLastError вернул код 0, а в [LastError] чтото лежит - значит плагин ругается, а если код >0 значит система и случился какой-то крах.

А ловить ошибки по описанию это дохлый номер, знаешь их сколько..., и еще неизвестно на каком языке ты их можешь получить.

А вообще, это не проканает (рассуждал как будто я пишу NeoBookDBPro), т.к. вызов GetLastError в контексте плагина вернет ошибки только связанные с самим плагином откуда команда вызвана, его потоком, а не чужим. Это надо в самом NeoBookDBPro делать. Но принцип ясен, даже не знаю как тут можно помочь, какие еще есть варианты... Без модификации NeoBookDBPro самим автором никак. Peter что думаешь?


Как задавать вопросы

Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
СообщениеПроще Peter'a попросить добавить в плагин отдельной командой вызов GetLastError
Хотя неизвестно что будет выдавать, может у плагинов еще какие-то свои ошибки записываются в [LastError], допустим если база запаролена то может вряд-ли будет возникать именно системная ошибка. И ты уже через переменную не отличишь чья это ошибка, системы или плагина. Тогда наверное нужно еще перед выполнением команды NeoBookDBPro сбрасывать отчет системных ошибок - SetLastError, а потом смотреть, если GetLastError вернул код 0, а в [LastError] чтото лежит - значит плагин ругается, а если код >0 значит система и случился какой-то крах.

А ловить ошибки по описанию это дохлый номер, знаешь их сколько..., и еще неизвестно на каком языке ты их можешь получить.

А вообще, это не проканает (рассуждал как будто я пишу NeoBookDBPro), т.к. вызов GetLastError в контексте плагина вернет ошибки только связанные с самим плагином откуда команда вызвана, его потоком, а не чужим. Это надо в самом NeoBookDBPro делать. Но принцип ясен, даже не знаю как тут можно помочь, какие еще есть варианты... Без модификации NeoBookDBPro самим автором никак. Peter что думаешь?

Автор - DEMBEL
Дата добавления - 09 Января 2016 в 07:13
mishemДата: Сб, 09 Января 2016, 09:32 | Сообщение # 3
Эксперт форума
Цитата DEMBEL ()
Проще Peter'a попросить

Ну я в принципе и запостил с надеждой на Петра или на тебя. Хотел сначала в ЛС, после решил на форуме, так как со временем может еще кому понадобиться.

Цитата DEMBEL ()
А вообще, это не проканает (рассуждал как будто я пишу NeoBookDBPro), т.к. вызов GetLastError в контексте плагина вернет ошибки только связанные с самим плагином

Я запустил Microsoft Access, там возвращается именно такой же текст как и в плагине. Отсюда и вывод сделал что текст получаем из системы , а не из плагина.

Цитата DEMBEL ()
Без модификации NeoBookDBPro самим автором никак.

Ну сейчас они точно это делать не будут. Да и в ближайшем будущем думаю тоже. Так что надежда только на вас. :)


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
Сообщение
Цитата DEMBEL ()
Проще Peter'a попросить

Ну я в принципе и запостил с надеждой на Петра или на тебя. Хотел сначала в ЛС, после решил на форуме, так как со временем может еще кому понадобиться.

Цитата DEMBEL ()
А вообще, это не проканает (рассуждал как будто я пишу NeoBookDBPro), т.к. вызов GetLastError в контексте плагина вернет ошибки только связанные с самим плагином

Я запустил Microsoft Access, там возвращается именно такой же текст как и в плагине. Отсюда и вывод сделал что текст получаем из системы , а не из плагина.

Цитата DEMBEL ()
Без модификации NeoBookDBPro самим автором никак.

Ну сейчас они точно это делать не будут. Да и в ближайшем будущем думаю тоже. Так что надежда только на вас. :)

Автор - mishem
Дата добавления - 09 Января 2016 в 09:32
PeterДата: Сб, 09 Января 2016, 15:03 | Сообщение # 4
Админ NeoBook
Плагин и приложение работают в одном потоке (в общем случае), а вот распределение памяти у них разное, но это ... так... к слову... понты покидать..
:)
Цитата mishem ()
Я запустил Microsoft Access, там возвращается именно такой же текст как и в плагине. Отсюда и вывод сделал что текст получаем из системы , а не из плагина.

Ну, коли так, пробуй то, что в прикреплении.
Авось и заработает - я не пробовал.
Тогда тебе повезло, а если нет, то - ж...
:)
Кстати...
Цитата DEMBEL ()
А ловить ошибки по описанию это дохлый номер, знаешь их сколько..., и еще неизвестно на каком языке ты их можешь получить.

Последнюю "виндовскую" ошибку можно выводить как в виде кода ошибки, так и в виде текста (ее описания), а выводится будет на языке системы.
Цитата DEMBEL ()
может у плагинов еще какие-то свои ошибки записываются в [LastError],

Об этом тоже следует помнить.
Прикрепления: zmGetLastError.rar(36Kb)


- А вам какую операционку поставить - экспи, семерку или висту?
- Это ты сейчас о чем?
- Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный?
- Ну, конечно, надежный!
- Вот, значит - экспи, без вопросов! Сейчас сделаем...

(Улицы разбитых фонарей, сезон 10, серия 17)

Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!


При модном втюхе модоподдающимся начинает нравиться
 
СообщениеПлагин и приложение работают в одном потоке (в общем случае), а вот распределение памяти у них разное, но это ... так... к слову... понты покидать..
:)
Цитата mishem ()
Я запустил Microsoft Access, там возвращается именно такой же текст как и в плагине. Отсюда и вывод сделал что текст получаем из системы , а не из плагина.

Ну, коли так, пробуй то, что в прикреплении.
Авось и заработает - я не пробовал.
Тогда тебе повезло, а если нет, то - ж...
:)
Кстати...
Цитата DEMBEL ()
А ловить ошибки по описанию это дохлый номер, знаешь их сколько..., и еще неизвестно на каком языке ты их можешь получить.

Последнюю "виндовскую" ошибку можно выводить как в виде кода ошибки, так и в виде текста (ее описания), а выводится будет на языке системы.
Цитата DEMBEL ()
может у плагинов еще какие-то свои ошибки записываются в [LastError],

Об этом тоже следует помнить.

Автор - Peter
Дата добавления - 09 Января 2016 в 15:03
DEMBELДата: Сб, 09 Января 2016, 16:09 | Сообщение # 5
Наш дизайнер
Цитата Peter ()
Плагин и приложение работают в одном потоке

вон даже как, ну тогда считай mishem повезло тебе


Как задавать вопросы

Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
Сообщение
Цитата Peter ()
Плагин и приложение работают в одном потоке

вон даже как, ну тогда считай mishem повезло тебе

Автор - DEMBEL
Дата добавления - 09 Января 2016 в 16:09
PeterДата: Сб, 09 Января 2016, 16:24 | Сообщение # 6
Админ NeoBook
Цитата DEMBEL ()
вон даже как, ну тогда считай mishem повезло тебе

Ну, это еще не факт.
Подождем-с что скажет "начальник транспортного цеха".
;)


- А вам какую операционку поставить - экспи, семерку или висту?
- Это ты сейчас о чем?
- Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный?
- Ну, конечно, надежный!
- Вот, значит - экспи, без вопросов! Сейчас сделаем...

(Улицы разбитых фонарей, сезон 10, серия 17)

Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!


При модном втюхе модоподдающимся начинает нравиться
 
Сообщение
Цитата DEMBEL ()
вон даже как, ну тогда считай mishem повезло тебе

Ну, это еще не факт.
Подождем-с что скажет "начальник транспортного цеха".
;)

Автор - Peter
Дата добавления - 09 Января 2016 в 16:24
mishemДата: Сб, 09 Января 2016, 21:19 | Сообщение # 7
Эксперт форума
Не повезло. :(

Все время возвращает 0.

Мои соображения...
В плагине ошибки возвращаются в переменную dbpError. Это на тот случай если ты упустил этот момент.

По сути это может быть не ошибка, а просто сообщение системы. ????

Это могут быть сообщения\ошибки не системы а ADO.


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
СообщениеНе повезло. :(

Все время возвращает 0.

Мои соображения...
В плагине ошибки возвращаются в переменную dbpError. Это на тот случай если ты упустил этот момент.

По сути это может быть не ошибка, а просто сообщение системы. ????

Это могут быть сообщения\ошибки не системы а ADO.

Автор - mishem
Дата добавления - 09 Января 2016 в 21:19
PeterДата: Сб, 09 Января 2016, 22:07 | Сообщение # 8
Админ NeoBook
Цитата mishem ()
Не повезло.

Увы, я не удивлен.

Цитата mishem ()
В плагине ошибки возвращаются в переменную dbpError. Это на тот случай если ты упустил этот момент.

Важно не куда он их выводит, а где он их берет.

Цитата mishem ()
Это могут быть сообщения\ошибки не системы а ADO.

Все может быть...

mishem, я думаю так: попробуй задать эти вопросы на оффоруме (ты там "свой человек"), может разрабы что посоветуют / подскажут...
А дальше видно будет...

Может, все окажется просто как мычание, и надо только знать...
;)
А может они и плагин "подправят"...
:)


- А вам какую операционку поставить - экспи, семерку или висту?
- Это ты сейчас о чем?
- Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный?
- Ну, конечно, надежный!
- Вот, значит - экспи, без вопросов! Сейчас сделаем...

(Улицы разбитых фонарей, сезон 10, серия 17)

Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!


При модном втюхе модоподдающимся начинает нравиться
 
Сообщение
Цитата mishem ()
Не повезло.

Увы, я не удивлен.

Цитата mishem ()
В плагине ошибки возвращаются в переменную dbpError. Это на тот случай если ты упустил этот момент.

Важно не куда он их выводит, а где он их берет.

Цитата mishem ()
Это могут быть сообщения\ошибки не системы а ADO.

Все может быть...

mishem, я думаю так: попробуй задать эти вопросы на оффоруме (ты там "свой человек"), может разрабы что посоветуют / подскажут...
А дальше видно будет...

Может, все окажется просто как мычание, и надо только знать...
;)
А может они и плагин "подправят"...
:)

Автор - Peter
Дата добавления - 09 Января 2016 в 22:07
DEMBELДата: Пн, 11 Января 2016, 04:09 | Сообщение # 9
Наш дизайнер
Цитата
Все время возвращает 0.

ну правильно, ведь в твоем плагине ошибок не возникало. А тут вообще с чужого плагина нужно ошибку выхватывать. Так не выйдет.


Как задавать вопросы

Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
Сообщение
Цитата
Все время возвращает 0.

ну правильно, ведь в твоем плагине ошибок не возникало. А тут вообще с чужого плагина нужно ошибку выхватывать. Так не выйдет.

Автор - DEMBEL
Дата добавления - 11 Января 2016 в 04:09
mishemДата: Пн, 11 Января 2016, 07:40 | Сообщение # 10
Эксперт форума
Цитата Peter ()
попробуй задать эти вопросы на оффоруме (ты там "свой человек"), может разрабы что посоветуют / подскажут...

Мне это не к спеху. Пока обошел эту проблему выводом окна сразу для ввода пароля и указания пути к файлу. Ошибки будут выскакивать только если заведома указать неверный файл или пароль.

Хотелось конечно отлавливать возможные ошибки, но ...


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
Сообщение
Цитата Peter ()
попробуй задать эти вопросы на оффоруме (ты там "свой человек"), может разрабы что посоветуют / подскажут...

Мне это не к спеху. Пока обошел эту проблему выводом окна сразу для ввода пароля и указания пути к файлу. Ошибки будут выскакивать только если заведома указать неверный файл или пароль.

Хотелось конечно отлавливать возможные ошибки, но ...

Автор - mishem
Дата добавления - 11 Января 2016 в 07:40
Форум NeoBook » Всё о программе NeoBook » Общие вопросы по NeoBook » Получить номер ошибки по ее тексту.
Страница 1 из 11
Поиск: