Добро пожаловать к нам в гости! Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
Именно номер. Суть... Заметил что в плагине NeoBookDBPro (может и в других каких) сообщения об ошибке выводятся те, которые заложены в системе. То есть нет смысла отлавливать ошибку по тексту. Если система будет установлена например английская, то текст будет на английском языке.
Нужно как то по тексту ошибки получить ее номер и уже от номера отталкиваться что дальше делать.
Чтобы более понятно было. Открываю файл базы данных, но не знаю запаролена она или нет. Если база данных запаролена, появляется окно с текстом "Ошибочный пароль". В принципе сначала решил что можно отключить отображение ошибки и выводить свое сообщение типа "Введите пароль...".
Но! Ведь файл базы данных может быть не запоролен, а просто к примеру поврежден, или попытались открыть вообще какой то сторонний файл, тогда появится ошибка "Нераспознаваемый формат базы данных: ....." (Кто такой перевод делал, руки оторвать бы...) Вот здесь и получается что при этой ошибке нет смысла выводить окно о вводе пароля, а должно быть сообщение о том что неизвестный формат базы.
Проще Peter'a попросить добавить в плагин отдельной командой вызов GetLastError Хотя неизвестно что будет выдавать, может у плагинов еще какие-то свои ошибки записываются в [LastError], допустим если база запаролена то может вряд-ли будет возникать именно системная ошибка. И ты уже через переменную не отличишь чья это ошибка, системы или плагина. Тогда наверное нужно еще перед выполнением команды NeoBookDBPro сбрасывать отчет системных ошибок - SetLastError, а потом смотреть, если GetLastError вернул код 0, а в [LastError] чтото лежит - значит плагин ругается, а если код >0 значит система и случился какой-то крах.
А ловить ошибки по описанию это дохлый номер, знаешь их сколько..., и еще неизвестно на каком языке ты их можешь получить.
А вообще, это не проканает (рассуждал как будто я пишу NeoBookDBPro), т.к. вызов GetLastError в контексте плагина вернет ошибки только связанные с самим плагином откуда команда вызвана, его потоком, а не чужим. Это надо в самом NeoBookDBPro делать. Но принцип ясен, даже не знаю как тут можно помочь, какие еще есть варианты... Без модификации NeoBookDBPro самим автором никак. Peter что думаешь? Как задавать вопросы
Ну я в принципе и запостил с надеждой на Петра или на тебя. Хотел сначала в ЛС, после решил на форуме, так как со временем может еще кому понадобиться.
ЦитатаDEMBEL ()
А вообще, это не проканает (рассуждал как будто я пишу NeoBookDBPro), т.к. вызов GetLastError в контексте плагина вернет ошибки только связанные с самим плагином
Я запустил Microsoft Access, там возвращается именно такой же текст как и в плагине. Отсюда и вывод сделал что текст получаем из системы , а не из плагина.
ЦитатаDEMBEL ()
Без модификации NeoBookDBPro самим автором никак.
Ну сейчас они точно это делать не будут. Да и в ближайшем будущем думаю тоже. Так что надежда только на вас. Не хочешь читать хелп?
Плагин и приложение работают в одном потоке (в общем случае), а вот распределение памяти у них разное, но это ... так... к слову... понты покидать..
Цитатаmishem ()
Я запустил Microsoft Access, там возвращается именно такой же текст как и в плагине. Отсюда и вывод сделал что текст получаем из системы , а не из плагина.
Ну, коли так, пробуй то, что в прикреплении. Авось и заработает - я не пробовал. Тогда тебе повезло, а если нет, то - ж...
Кстати...
ЦитатаDEMBEL ()
А ловить ошибки по описанию это дохлый номер, знаешь их сколько..., и еще неизвестно на каком языке ты их можешь получить.
Последнюю "виндовскую" ошибку можно выводить как в виде кода ошибки, так и в виде текста (ее описания), а выводится будет на языке системы.
ЦитатаDEMBEL ()
может у плагинов еще какие-то свои ошибки записываются в [LastError],
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Ну, это еще не факт. Подождем-с что скажет "начальник транспортного цеха".
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
В плагине ошибки возвращаются в переменную dbpError. Это на тот случай если ты упустил этот момент.
Важно не куда он их выводит, а где он их берет.
Цитатаmishem ()
Это могут быть сообщения\ошибки не системы а ADO.
Все может быть...
mishem, я думаю так: попробуй задать эти вопросы на оффоруме (ты там "свой человек"), может разрабы что посоветуют / подскажут... А дальше видно будет...
Может, все окажется просто как мычание, и надо только знать...
А может они и плагин "подправят"...
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
попробуй задать эти вопросы на оффоруме (ты там "свой человек"), может разрабы что посоветуют / подскажут...
Мне это не к спеху. Пока обошел эту проблему выводом окна сразу для ввода пароля и указания пути к файлу. Ошибки будут выскакивать только если заведома указать неверный файл или пароль.