Форум: "Базы";
Текущий архив: 2002.03.25;
Скачать: [xml.tar.bz2];
ВнизКуда деваются ошибки? Найти похожие ветки
← →
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шник, то, как и в предыдущем случае, эта ошибка не появляется, выдается окно с соответствующим сообщением из обработчика и программа нормально работает дальше.
Вот такие вот парадоксы.
Кто что скажет по этому поводу?
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.03.25;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.005 c