Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.03.25;
Скачать: CL | DM;

Вниз

Куда деваются ошибки?   Найти похожие ветки 

 
Jony ©   (2002-02-25 11:09) [0]

Мастера, объясните! Уже не первый раз попадаю в такую ситуацию: при запуске программы из Delphi вылезает ошибка (в последнем случае - "Ошибка неизвестного типа", с чем связана - догадываюсь). Долго и нудно бьешься, чтобы ее выловить, мозги плавятся. И вдруг, случайно обнаруживаешь, что если запустить скомпилированный EXEшник, то никакой ошибки в этом месте нет. В чем здесь секрет? Если это какая-то закономерность, то как заранее определить, какая ошибка - "липовая"?


 
sniknik ©   (2002-02-25 12:53) [1]

Можеш прислать примерчик? Так чтобы как ты говорил в Delphi ошибка в exe нет. Возможно сам Delphi глючит у меня шестой проверю.


 
Jony ©   (2002-02-25 13:45) [2]

С "примерчиком" сложнее. Сам проект уже приличный, база на MSSQL тоже солидная. Делать вырезку - очень долго, да и обязательно где-то чего-то не учтешь. Могу подробно описать ситуации, при которых возникали такие моменты. Может удастся смоделировать на каком-то готовом проекте (я думаю это не сложно будет сделать).
1.(Вернее последняя, с которой столкнулся.) База на MSSQL. В DataModule - ADODataSet (пока без всяких наворотов типа ADOшных Properties, описанных в статье на "Королевстве", еще только пытаюсь с ними разобраться). Кроме полей из таблицы добавлены LookUpные поля из таблиц-справочников (вернее через их ADODataSet наборы в том же DataModule) через FieldsEditor по всем правилам теории: NewFields -> FieldType - LookUp и т.д.
А далее все и начинается. Если в такой набор добавляешь новую запись (Insert через Grid или Editы) после ввода значения в первое же поле выскакивает окно с "Ошибкой неизвестного типа". После определенного количества нажатий Enter - F9 (с той же ошибкой) можно вводить информацию в следующее поле, и предыдущее поле остается с информацией. В результате долгих и мучительных поисков удалось (надеюсь, что удалось) установить, что ошибка эта вылетает именно из-за LookUpных полей - ответ на попытку достать из справочника значение, соответствующее значению Null в поле набора, связанным со справочником в новой записи. Так вот, если проект откомпилировать и запустить EXEшник, то эта ошибка не появляется.
2. Воспроизведу по памяти, а то проект в таком состоянии, что проверить точно будет сложно. В таблице справочника на сервере сделан тригер на удаление - проверка использования справочной единицы в документах. В случае, если она используется - возвращается сообщение об этом. В проекте стоит обработчик такой ситуации (Try... Except) с соответствующим сообщением. В этом случае, если запустить проект из Delphi, то при попытке удалить справочное значение выскакивает ошибка с сообщением от тригера и после этого набор блокируется и любое действие при попытке его редактировать или даже прокрутить приводят к появлению этой ошибки и ничего больше сделать нельзя. А вот если запустить EXEшник, то, как и в предыдущем случае, эта ошибка не появляется, выдается окно с соответствующим сообщением из обработчика и программа нормально работает дальше.
Вот такие вот парадоксы.
Кто что скажет по этому поводу?


 
Юрий Жуков ©   (2002-02-25 15:31) [3]

Знаем такую ошибку.
Связана с лукап полями. Причем без IDE ее у тебя не будет - в борланде поставили try except (там в исходниках можно увидеть)
Вывод либо отключить в IDE остановку на ошибках, либо поставить LookupCashe := True;


 
alxx ©   (2002-02-26 01:58) [4]

А вот у меня была такая: Table is full. - при добавлении записи. Глюки dBase-овские. Что-то с индексами наглючилось.



Страницы: 1 вся ветка

Текущий архив: 2002.03.25;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.014 c
1-80590
AlexNord
2002-03-10 03:19
2002.03.25
Progress Bar или что то похожее!:)


3-80404
Дмитрий_Ч
2002-02-26 13:17
2002.03.25
Помогите новичку!


1-80471
kronos
2002-03-12 00:15
2002.03.25
Помогите!!!


3-80389
Jony
2002-02-25 11:09
2002.03.25
Куда деваются ошибки?


7-80704
max38
2001-09-21 20:20
2002.03.25
как потстыковать *.exe файл в создоваемое приложение?