Visual Basic 6.0 - On error - странности
On error - странности
From: "A. Skrobov" <tyomitch [@] r66.ru>
Thu Feb 19 2004 00:49, Max Irgiznov wrote to Alexander Asyabrik:
MI> Вобщем глюк присутствует и никак не искореняется. :(
Код-то покажи, а то как гадать?
* Origin: FidoNet Online - http://www.fido-online.com (2:5020/175.2)
On error - странности
Hi, All !
Столкнулся вот с такой проблемой. Исспользуется VB6+SP5, Win2k3+SP1+HF.
Есть цепочка последовательный вызовов методов, допустим:
mainform->function1->sub1->sub2->function2
Ставим опцию IDE в Break unhandled error, в каждом методе определен обработчик
ошибок On Error GoTo err. Если ошибка происходит например в sub2, то в IDE
показывается местный обработчик, отключаем его, запускаем и видим сообщение из
обработчика в sub1, и.т.д вплоть до mainform. Вобщем интересное поведение.
Так вот проблема собственно не в таком(хотя видимо с этим связанная)
выполнении обработчиков, а в том, что в скомпилированном виде, ниодин из них не
выполняется, т.е. приложение валится с банальной ошибкой доступа к памяти.
Код дающий такой эффект эквивалентен приблезительно следующему: zz = arr(-1)
Хотя ради интереса делал err.raise и оно тоже упало на ровном месте, т.е. ни
один из обработчиков по ходу выполнения кода не сработал.
Я в растеренности, пользователи волнуются, причем не понятно когда и почему все
это началось.
Good-bye, All !!! С вами был, есть и будет: Max Irgiznov [VS.NET] [FreeBSD]
* Origin: KittenMail ничто... не pаботает... так долго... (2:5051/36.20)
Re: очередной глупый вопрос про классы...
From: "A. Skrobov" <tyomitch [@] r66.ru>
Tue Feb 17 2004 20:31, A. Skrobov wrote to Dmitriy Kozyrev:
AS>>> Стал разбираться - и действительно, процедуры не генерируются! Я в
AS>>> растерянности.
DK>> Точно не генерируются? Я заюзал TypeLib Information - так он и на
DK>> свойства, и на переменные говорит одно и то же, мол, свойства это, самые
DK>> настоящие. :)
AS> Совершенно точно. Кода под рукой нету, но завтра запощу.
Вот, для интересующихся.
16: Option Explicit
17: Private Declare Sub DebugBreak Lib "kernel32.dll" ()
18:
19: Public Member1 As Long
20: Private mvarMember2 As Long
21:
04A51A00 push ebp
04A51A01 mov ebp,esp
04A51A03 sub esp,0Ch
04A51A06 push offset ___vbaExceptHandler (04a510e6)
04A51A0B mov eax,fs:[00000000]
04A51A11 push eax
04A51A12 mov dword ptr fs:[0],esp
04A51A19 sub esp,8
04A51A1C push ebx
04A51A1D push esi
04A51A1E push edi
04A51A1F mov dword ptr [ebp-0Ch],esp
04A51A22 mov dword ptr [ebp-8],offset __imp___CIexp+34h (04a510c0)
04A51A29 mov dword ptr [ebp-4],0
04A51A30 mov esi,dword ptr [Me]
04A51A33 push esi
04A51A34 mov eax,dword ptr [esi]
04A51A36 call dword ptr [eax+4]
22: Public Property Let Member2(ByVal vData As Long)
04A51A39 mov ecx,dword ptr [vData]
04A51A3C mov dword ptr [esi+38h],ecx
23: mvarMember2 = vData
04A51A3F mov eax,dword ptr [Me]
04A51A42 push eax
04A51A43 mov edx,dword ptr [eax]
04A51A45 call dword ptr [edx+8]
04A51A48 mov eax,dword ptr [ebp-4]
04A51A4B mov ecx,dword ptr [ebp-14h]
04A51A4E pop edi
04A51A4F pop esi
04A51A50 mov dword ptr fs:[0],ecx
04A51A57 pop ebx
04A51A58 mov esp,ebp
04A51A5A pop ebp
04A51A5B ret 8
24: End Property
25:
04A51A60 push ebp
04A51A61 mov ebp,esp
04A51A63 sub esp,0Ch
04A51A66 push offset ___vbaExceptHandler (04a510e6)
04A51A6B mov eax,fs:[00000000]
04A51A71 push eax
04A51A72 mov dword ptr fs:[0],esp
04A51A79 sub esp,0Ch
04A51A7C push ebx
04A51A7D push esi
04A51A7E push edi
04A51A7F mov dword ptr [ebp-0Ch],esp
04A51A82 mov dword ptr [ebp-8],offset __imp___CIexp+3Ch (04a510c8)
04A51A89 xor edi,edi
04A51A8B mov dword ptr [ebp-4],edi
04A51A8E mov esi,dword ptr [Me]
04A51A91 push esi
04A51A92 mov eax,dword ptr [esi]
04A51A94 call dword ptr [eax+4]
26: Public Property Get Member2() As Long
04A51A97 mov ecx,dword ptr [esi+38h]
04A51A9A mov dword ptr [Member2],edi
04A51A9D mov dword ptr [Member2],ecx
27: Member2 = mvarMember2
04A51AA0 mov eax,dword ptr [Me]
04A51AA3 push eax
04A51AA4 mov edx,dword ptr [eax]
04A51AA6 call dword ptr [edx+8]
04A51AA9 mov eax,dword ptr [Member2]
04A51AAC mov ecx,dword ptr [Member2]
04A51AAF mov dword ptr [eax],ecx
04A51AB1 mov eax,dword ptr [ebp-4]
04A51AB4 mov ecx,dword ptr [ebp-14h]
04A51AB7 pop edi
04A51AB8 pop esi
04A51AB9 mov dword ptr fs:[0],ecx
04A51AC0 pop ebx
04A51AC1 mov esp,ebp
04A51AC3 pop ebp
04A51AC4 ret 8
28: End Property
29:
04A51AD0 push ebp
04A51AD1 mov ebp,esp
04A51AD3 sub esp,0Ch
04A51AD6 push offset ___vbaExceptHandler (04a510e6)
04A51ADB mov eax,fs:[00000000]
04A51AE1 push eax
04A51AE2 mov dword ptr fs:[0],esp
04A51AE9 sub esp,8
04A51AEC push ebx
04A51AED push esi
04A51AEE push edi
04A51AEF mov dword ptr [ebp-0Ch],esp
04A51AF2 mov dword ptr [ebp-8],offset __imp___CIexp+44h (04a510d0)
04A51AF9 mov dword ptr [ebp-4],0
04A51B00 mov eax,dword ptr [Me]
04A51B03 push eax
04A51B04 mov ecx,dword ptr [eax]
04A51B06 call dword ptr [ecx+4]
30: Public Sub Break()
04A51B09 call ___vba [@] 0019D2EC (04a515c8)
04A51B0E call dword ptr [__imp____vbaSetSystemError (04a51010)]
31: DebugBreak
04A51B14 mov eax,dword ptr [Me]
04A51B17 push eax
04A51B18 mov edx,dword ptr [eax]
04A51B1A call dword ptr [edx+8]
04A51B1D mov eax,dword ptr [ebp-4]
04A51B20 mov ecx,dword ptr [ebp-14h]
04A51B23 pop edi
04A51B24 pop esi
04A51B25 mov dword ptr fs:[0],ecx
04A51B2C pop ebx
04A51B2D mov esp,ebp
04A51B2F pop ebp
04A51B30 ret 4
* Origin: FidoNet Online - http://www.fido-online.com (2:5020/175.2)
Re[3]: Упаковка в ZIP и CAB
From: Максим Кнышов <knyshow [@] mail.dsip.net>
Привет A.!
МК>> Люди, больше никто никаких архиваторов не знает???
AS> Я писал модуль для работы с unrar.dll, но там есть левая библиотека-переходник
unrar же только распаковывает архивы, а мне нужна именно упаковка...
--
•>ўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўў<•
Максим Кнышов [ knyshow#mail.dsip.net ] [ http://gbu.dvostok.com ]
•>ўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўў<•
Последняя версия программы Golden BackUp ( http://gbu.dvostok.com ) - 0.0.188 Beta 9
•>ўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўў<•
* Origin: КПКП "Транс Агентство" (2:5020/400)
Многоязыковая поддержка...
From: Максим Кнышов <knyshow [@] mail.dsip.net>
Привет Sergey!
SM> Если это и есть та самая "измененная под свои нужды" чужая Dll,
SM> мой совет - попросить у ее автора пару уроков: наверное, не откажет, раз позволил
SM> сменить копирайт. А вообще это те азы, без знания которых обычно за коммерческий
SM> софт не берутся.
Эта не та DLL, автор разговаривает только на Английском и Hемецком, а это языки, на
которых я разговариваю только при помощи www.translate.ru. Т.е. вы сами понимаете, что при
таком раскладе я мало чему могу у него научиться. Hа menumaker.dll было получено
разрешение "Делай что хочешь, только если будешь менять исходники - мое имя не свети".
Сейчас этот человек переписывает свою DLL по моей просьбе "под меня" и там уже будет стоять
ЕГО копирайт.
SM> А вообще это те азы, без знания которых обычно за коммерческий софт не берутся.
Теперь по поводу коммерческого софта:
В дистрибутиве следующей версии будет файл Readme.txt, в котором есть такие строки:
SM> Иногда мне люди задают вопросы наподобие: "Зачем создавать велосипед? Ведь
SM> подобных программ - огромное количество!" Я отвечу на этот и подобные ему
SM> вопросы раз и навсегда:
SM> Программа Golden BackUp изначально создавалась для ЛИЧHОГО использования мною
SM> для резервного копирования важной мне информации и поводом для ее создания
SM> послужил выход из строя моего старенького винчестера, после чего я еще пару
SM> месяцев был в дипрессии. Так вот, программа писалась ДЛЯ СЕБЯ, набирала
SM> возможностей, модифицировалась под конкретные задачи, но тем не менее
SM> изначально писалась как универсальная. Спустя некоторое время мне просто за
SM> бокалом пива предложили выложить программу в Интернет, что и было сделано.
SM>
SM> Второй вопрос, который мне частенько задают: "Почему на программу выставлена
SM> такая низная/высокая цена?" Цена выставлена не просто так - этой ценой я
SM> оправдываю стоимость доступа в Интернет, стоимость кофе и пива, потребляемого
SM> мною во время написания программы. И все. Если говорить откровенно - никакой
SM> прибыли. Хобби.
Т.е. это дейсчтвительно хобби, которое реально прибыли (пока?) не приносит.
SM> Теперь по сути вопроса:
Спасибо, очень интересно.
--
•>ўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўў<•
Максим Кнышов [ knyshow#mail.dsip.net ] [ http://gbu.dvostok.com ]
•>ўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўў<•
Последняя версия программы Golden BackUp ( http://gbu.dvostok.com ) - 0.0.188 Beta 9
•>ўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўў<•
* Origin: КПКП "Транс Агентство" (2:5020/400)
Упаковка в ZIP и CAB
From: Максим Кнышов <knyshow [@] mail.dsip.net>
Привет Dmitriy!
DK> А нафига? Для галочки?
А если и так?
DK> Смысла не вижу. Rar, Cab и Zip лидируют с огромным
Zip? Cab - прекрасно, а вот под Rar я что-то никакой доки не нашел..
DK> существуют новые архиваторы, обгоняющие даже Rar - например, PPMd и основанный на нем
DK> PPMonstr).
Hе слышал, но посмотрим, пасиба.
--
•>ўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўў<•
Максим Кнышов [ knyshow#mail.dsip.net ] [ http://gbu.dvostok.com ]
•>ўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўў<•
Последняя версия программы Golden BackUp ( http://gbu.dvostok.com ) - 0.0.188 Beta 9
•>ўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўў<•
* Origin: КПКП "Транс Агентство" (2:5020/400)
Правильное построение SQL- запроса
From: "Vasiliy Khorolich" <horvv [@] poltava.bank.gov.ua>
Уважаемый All!
Помогите, пожалуйста, решить мою проблему.
Суть вот в чем:
Имеется некий SQL - запрос к базе Access :
SQLstr = " SELECT * FROM Kurs_City WHERE Kurs_City.Date ='" & S_Data & "'"
где
S_Data = txtData.Text
Т.е. вводится в текстовое поле некая дата (она получается типа String) , а
потом по этому значению ставится фильтр из базы Access.
Проблема в том, что надо установить в самой таблице Kurs_City базы Access
поле Date типа Дата/Время, чтобы потом поставить по нему индекс (так надо,
для решения важного аспекта задачи).
HО! Если поставить тип этого поля в таблице Access - Дата/Время, то
SQL-запрос, указанный выше, напрочь отказывается работать.
Понимаю, что налицо - несовпадение типов данных - Дата/Время и String , но
как выйти из этой проблемы?
Пробовал делать так :
SQLstr = " SELECT * FROM Kurs_City WHERE Kurs_City.Date ='" & CDate(S_Data)
& "'"
но этого ничего не дало, выдает ошибку во время выполнения...
Если поставить тип поля - Текстовый, SQL-запрос работает без проблем. HО!
Тогда не работает нормально другая часть задачи.
Помогите, как выйти из этой проблемы.
Василий Хоролич.
* Origin: Demos online service (2:5020/400)
Re: Правильное построение SQL- запроса
Мы где-то виделись, Vasiliy?
23 Feb 04 09:34:56 в RU.VISUAL.BASIC Vasiliy Khorolich -> All:
VK> Проблема в том, что надо установить в самой таблице Kurs_City базы Access
VK> поле Date типа Дата/Время, чтобы потом поставить по нему индекс (так надо,
VK> для решения важного аспекта задачи).
VK> HО! Если поставить тип этого поля в таблице Access - Дата/Время, то
VK> SQL-запрос, указанный выше, напрочь отказывается работать.
VK> Понимаю, что налицо - несовпадение типов данных - Дата/Время и String , но
VK> как выйти из этой проблемы?
VK> Пробовал делать так :
VK> SQLstr = " SELECT * FROM Kurs_City WHERE Kurs_City.Date ='" &
VK> CDate(S_Data) & "'"
VK> но этого ничего не дало, выдает ошибку во время выполнения...
Попробуй вместо одинарных кавычек использовать символ #.
Всего хорошего!
Дмитрий Козырев aka Master
* Origin: Дорогу осилит идущий. (2:5023/11.148)
Re: Упаковка в ZIP и CAB
From: "A. Skrobov" <tyomitch [@] r66.ru>
Hello, Максим!
You wrote in conference fido7.ru.visual.basic to "Dmitriy" <fido7.ru.visual.basic [@] talk.ru>to Dmitriy on Mon, 23 Feb 2004 06:21:43
+0000 (UTC):
DK>> Смысла не вижу. Rar, Cab и Zip лидируют с огромным
МК> Zip? Cab - прекрасно, а вот под Rar я что-то никакой доки не нашел..
Сжатие раром "коммерческое", т.е. большая-большая тайна. Если кто-то и знает, как сжимать, то только если он "изучал" сам rar.exe
--
To prevent your mail from being filtered out, simply quote this line in your message body. A464E022
* Origin: Talk.Mail.Ru (2:5020/400)
Упаковка в ZIP и CAB
From: Максим Кнышов <knyshow [@] mail.dsip.net>
Привет A.!
AS> Сжатие раром "коммерческое", т.е. большая-большая тайна. Если кто-то и знает, как
AS> сжимать, то только если он "изучал" сам rar.exe
Hу так я об этом и говорю... Спецификации формата я в свое время очень сильно искал.
--
•>ўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўў<•
Максим Кнышов [ knyshow#mail.dsip.net ] [ http://gbu.dvostok.com ]
•>ўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўў<•
Последняя версия программы Golden BackUp ( http://gbu.dvostok.com ) - 0.0.188 Beta 9
•>ўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўўў<•
* Origin: КПКП "Транс Агентство" (2:5020/400)