Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.03.25;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.102 c
7-80694
andey
2001-12-20 19:28
2002.03.25
подскажите кто знает


1-80576
Nic
2002-03-10 12:59
2002.03.25
TStringGrid


7-80712
Mega
2001-12-23 23:03
2002.03.25
Отправка данных в LPT


1-80600
tovSuhov
2002-03-11 12:28
2002.03.25
Люди, подскажите...


1-80558
SuperIgor
2002-03-10 01:16
2002.03.25
Winamp





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский