powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Нет данных в стеке
22 сообщений из 22, страница 1 из 1
Нет данных в стеке
    #39471916
Lisichkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем добрый день!
Имеется чужой проект с такой чудной строчкой:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
procedure TFRM_SPR_SUBG.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
begin
  try
    DM.TBL_SPR_SUBG.Post; // DM.TBL_SPR_SUBG.State not in [dsInsert, dsEdit] - мой комментарий и здесь происходит ошибка
  except
  end;
  CanClose := true;
end;



Происходит ошибка. Стек:
DatabaseError('Dataset not in edit or insert mode',$10B8340)
TDataSet.UpdateRecord
TDataSet.Post
TCustomForm.CloseQuery
TCustomForm.Close
TCustomForm.WMClose((16, (0, 0, 0, 0), 0))
TControl.WndProc((16, 0, 0, 0, 0, 0, 0, 0, 0, 0))
TWinControl.WndProc((16, 0, 0, 0, 0, 0, 0, 0, 0, 0))
TCustomForm.WndProc((16, 0, 0, 0, 0, 0, 0, 0, 0, 0))
TWinControl.MainWndProc((16, 0, 0, 0, 0, 0, 0, 0, 0, 0))
StdWndProc(264844,16,0,0)
TWinControl.DefaultHandler((no value))
TCustomForm.DefaultHandler((no value))
TWinControl.WMSysCommand((274, 61536, 16843105, 353, 353, 257, 0))
TCustomForm.WMSysCommand((274, 61536, 16843105, 353, 353, 257, 0))
TControl.WndProc((274, 61536, 16843105, 0, 61536, 0, 353, 257, 0, 0))
TWinControl.WndProc((274, 61536, 16843105, 0, 61536, 0, 353, 257, 0, 0))
TCustomForm.WndProc((274, 61536, 16843105, 0, 61536, 0, 353, 257, 0, 0))
TWinControl.MainWndProc((274, 61536, 16843105, 0, 61536, 0, 353, 257, 0, 0))
StdWndProc(264844,274,61536,16843105)
TApplication.ProcessMessage((264844, 274, 61536, 16843105, 1448765, (353, 257)))
TApplication.HandleMessage
TApplication.Run

Почему в стеке нет ни слова про TFRM_SPR_SUBG.FormCloseQuery???
P.S. Delphi 7, Debug info+Debug DCU установлено.
...
Рейтинг: 0 / 0
Нет данных в стеке
    #39471953
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lisichkin,

Ну а при запуске вне среды ошибка есть?
...
Рейтинг: 0 / 0
Нет данных в стеке
    #39471970
Lisichkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При запуске без отладчика сообщения об ошибки нет - она гаситься
...
Рейтинг: 0 / 0
Нет данных в стеке
    #39471986
schi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LisichkinВсем добрый день!
Имеется чужой проект с такой чудной строчкой:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
procedure TFRM_SPR_SUBG.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
begin
  try
    DM.TBL_SPR_SUBG.Post; // DM.TBL_SPR_SUBG.State not in [dsInsert, dsEdit] - мой комментарий и здесь происходит ошибка
  except
  end;
  CanClose := true;
end;



Происходит ошибка. Стек:
DatabaseError('Dataset not in edit or insert mode',$10B8340)
TDataSet.UpdateRecord
TDataSet.Post
TCustomForm.CloseQuery
^^^^^^^^^^^^^^^

Почему в стеке нет ни слова про TFRM_SPR_SUBG.FormCloseQuery???


А это не та строчка ?

Для любителей глотать исключения в аду приготовлен отдельный котел. И не один.
...
Рейтинг: 0 / 0
Нет данных в стеке
    #39471987
Фотография DetSimen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LisichkinПочему в стеке нет ни слова про TFRM_SPR_SUBG.FormCloseQuery???


Потому что ошибка и происходит в FormCloseQuery. Стек начинает раскручиваться назад, показывая последовательность вызовов ДО этой функции.
...
Рейтинг: 0 / 0
Нет данных в стеке
    #39471990
goldmi45
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lisichkin,

Код: pascal
1.
2.
3.
4.
5.
6.
procedure TFRM_SPR_SUBG.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
begin
  if DM.TBL_SPR_SUBG.State in [dsInsert, dsEdit] then
    DM.TBL_SPR_SUBG.Post;
end;


И не надо гасить исключения.
...
Рейтинг: 0 / 0
Нет данных в стеке
    #39471998
Lisichkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторИ не надо гасить исключения.
Я кажется указал: авторИмеется чужой проект с такой чудной строчкой, что не являюсь автором этого чуда :))
...
Рейтинг: 0 / 0
Нет данных в стеке
    #39472003
schi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и убедиться, что в опциях компилятора указана гайка Stack Frames
...
Рейтинг: 0 / 0
Нет данных в стеке
    #39472035
GunSmoker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LisichkinПочему в стеке нет ни слова про

http://www.gunsmoker.ru/2015/02/stack-frames.html
...
Рейтинг: 0 / 0
Нет данных в стеке
    #39472037
GunSmoker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
schi, не поможет без пересбора RTL/VCL.
...
Рейтинг: 0 / 0
Нет данных в стеке
    #39472192
schi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GunSmokerschi, не поможет без пересбора RTL/VCL.

ТС использует use debug dcus, там разве эта опция не включена ?
...
Рейтинг: 0 / 0
Нет данных в стеке
    #39472294
GunSmoker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
schi, к сожалению - нет.
...
Рейтинг: 0 / 0
Нет данных в стеке
    #39472420
schi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GunSmokerschi, к сожалению - нет.

Век живи, век учись. Спасибо.
...
Рейтинг: 0 / 0
Нет данных в стеке
    #39472473
Lisichkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Реанимирую тему :)
В наследованном проекте очень много кода типа приведенного выше
Код: pascal
1.
2.
3.
4.
try
........
except
end;



Как я могу найти все такие места??

P.S. Я смотрел на статический анализатор кода FixInsite, но Trial downloads ограничен Delphi 2006, а у меня Delphi 7
...
Рейтинг: 0 / 0
Нет данных в стеке
    #39472498
Vizit0r
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LisichkinКак я могу найти все такие места??
Внезапно,
Ctrl+Shift+F
...
Рейтинг: 0 / 0
Нет данных в стеке
    #39472535
Lisichkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если серьезно?

81 файл содержит строку except :(
...
Рейтинг: 0 / 0
Нет данных в стеке
    #39472574
Vizit0r
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LisichkinА если серьезно?

81 файл содержит строку except :(

ну содержит. Так что, ты хочешь суперкнопку "сделать *хорошо* " ? Так чтоб все try..except магически преобраовались во что-то, что тебе понравится?
...
Рейтинг: 0 / 0
Нет данных в стеке
    #39472603
Bred eFeM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
schi, Для любителей глотать исключения в аду приготовлен отдельный котел. И не один .

Правильно, второй для любителей их генерить направо и налево.
...
Рейтинг: 0 / 0
Нет данных в стеке
    #39472617
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bred eFeMschi, Для любителей глотать исключения в аду приготовлен отдельный котел. И не один .

Правильно, второй для любителей их генерить направо и налево.А-ха-ха!
...
Рейтинг: 0 / 0
Нет данных в стеке
    #39472620
GunSmoker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bred eFeM, ты ещё скажи, что этим блоком ловят не Access Violation, который не знают как исправить.
...
Рейтинг: 0 / 0
Нет данных в стеке
    #39472663
Bred eFeM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GunSmoker,
вот-вот, 81 Ufo Access Violation, а нужен только один:
Код: pascal
1.
program try Run; except WriteLn('Гипс снимают, клиент уезжает!'); end; end.
...
Рейтинг: 0 / 0
Нет данных в стеке
    #39472955
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lisichkin,

GExperts поставь - там удобное средство просмотра результатов поиска есть.
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Нет данных в стеке
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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