Текущий архив: 2005.07.11;
Скачать: CL | DM;
ВнизОшибка "Разрушительный сбой" Найти похожие ветки
← →
galexis © (2005-05-31 11:01) [0]Добрый день!
Спасите кто может! Гружу данные из XML файла в базу FireBird. Для преобразования XML файла в датапакет использую TXMLTransformProvider и TClientDataSet. В Uses прописана MidasLib. Делаю ClientDataSet.Open
После нескольких минут вылетает ошибка "Разрушительный сбой", а иногда не вылетает и загрузка проходит нормально.
Пробовал вместо MidasLib использовать Midas.dll. Ошибка меняется на другую: Access violation in Midas.dll. И так же с попытки 5 загружается нормально. Подскажите в чем дело?
Спасибо.
← →
evvcom © (2005-05-31 11:18) [1]"Разрушительный сбой" я встречал, только когда возникает ошибка в COM-сервере. Ты используешь TXMLTransformProvider - это наверняка класс-обертка на COM-сервер. Вероятнее всего, твой XML файл содержит какие-то ошибки, во всяком случае с точки зрения COM-сервера. "Иногда вылетает, а иногда не вылетает" - на одном и том же файле или все же на разных? Если на одном и том же вылетает постоянно, то ищи в нем ошибку.
← →
DSKalugin © (2005-05-31 11:24) [2]Напиши парсер, который сделает проверку структуры XML файла. В итоге может быть приспособишь его для закачки данных.
Я себе так и сделал.
Это лучше чем связываться с закрытыми чужими разработками.
в любой момент можно запустить отладку и найти причину глюков.
Не будешь же ты связываться с мокрософтом и просить их выяснить причину. Тем более что они своих пользователей поддержкой не балуют.
← →
galexis © (2005-05-31 11:29) [3]На одном и том же вылетает. Других и нет пока. Этот файл выгрузка из другой базы. Мне надо написать ПО для загрузки в свою БД. На самом деле все еще сложнее. Я использую две пары TXMLTransformProvider и TClientDataSet. Открываю одну пару, затем вторую. Если открывать только одну из пар, то все работает хорошо. Т.е. ставлю брекпойнт перед открытием второго клиентдатасета, первый открывается нормально, а при открытии второго вылетает ошибка. А две пары - потомучто видимо TClientDataSet имеет ограничение на количество вложенных в него датасетов и я не могу открыть сразу всю запись из XML Файла, а базу нужно вставлять всю запись!
← →
galexis © (2005-05-31 11:45) [4]
> DSKalugin ©
Про парсер я уже тоже думал, но времени нет. Данные надо получать как всегда еще вчера. И еще один файл из другой базы висит. А так вроде все просто - открыл - загрузил.
Слежу за памятью в диспетчере задач, как только подходит к 150 Мб, так и вырубается. А уж если перешла предел, то работает.
← →
galexis © (2005-05-31 12:01) [5]И XML файл то всего 10 Мб. В перспективе свыше 100 Мб. Видимо такие вообще не загрузить. И зачем этот XML спрашиватеся тогда?
← →
DSKalugin © (2005-05-31 13:39) [6]XML - дань моде. Мокрософт пытается навязать свою новую технологию. Типа стандарт формата для обмена информацией меж разными платформами и вэбслужбами. Гемор вобщем очередной :-))
попробуй увеличить у себя объем виртуальной памяти, если он ограничен. А парсер написать таки придется
← →
galexis © (2005-05-31 15:18) [7]
> DSKalugin ©
У моего компа 1 Гб ОЗУ и столько же виртуальной, куда уж больше :(
Я боюсь дело не в парсере, а в midas. Попробовать бы midas.dll от Delphi 7 или вообще Delphi 8. В борланд что ли пожаловаться :)
← →
Rule © (2005-05-31 15:22) [8]galexis © (31.05.05 15:18) [7]
В борланд что ли пожаловаться :)
пошлют
← →
evvcom © (2005-05-31 15:54) [9]
> В борланд что ли пожаловаться
Интересно, на что? На пиратскую копию? Или некачественный кряк? А скорее все же надо искать причины не в корявости сторонних библиотек, которые отлаживаются не первый год, а в своем коде.
← →
galexis © (2005-05-31 16:00) [10]
> evvcom © (31.05.05 15:54) [9]
Пожаловаться на библиотеку midas.dll. Я могу вообще убрать свой код создав новый проект. Все равно будет работать примерно каждый 5-й раз. И Delphi у меня лицензионный, но чужой :)
Я оставил от XML файла 4 Мб. Сейчас проверю влияние размера файла.
← →
Rule © (2005-05-31 16:03) [11]galexis © (31.05.05 16:00) [10]
на Мидас надо отдельную лицензию ....
← →
galexis © (2005-05-31 16:09) [12]> Rule © (31.05.05 16:03) [11
С Delphi 6 midas входит в комплект как MidasLib.dcu. Это в Delphi 3 надо было лицензию
← →
sniknik © (2005-05-31 16:10) [13]если на midas грешиш то исправь ошибки в нем... (да, и на солнце есть пятна ;о)))
потом, слышал что у него есть проблемы при работе на 2х процессорном компе (сервере), не знаю исправляеться это или нет... не сталкивался.
← →
sniknik © (2005-05-31 16:10) [14]нда.
http://www.distribucon.com/midasbug/
← →
galexis © (2005-05-31 16:38) [15]
> sniknik © (31.05.05 16:10) [13]
Я так думаю и гипертрейдинг она не любит. Спасибо за ссылку.
← →
galexis © (2005-05-31 16:59) [16]
> sniknik © (31.05.05 16:10) [14]
Спасибо огромное! Скачал midas.dll (версии 9) от Delphi 2005. Тьфу, тьфу, тьфу, тук, тук, тук! Два раза испытал. Все работает!
Заодно много нового узнал. Ссылка чудо. Спасибо.
← →
galexis © (2005-05-31 17:03) [17]Теперь (с новым midas) можно попробовать избавиться от одного клиентдатасета, наверное тоже глюк старого midas ограниченность по вложенным датасетам.
← →
Rule © (2005-05-31 17:14) [18]sniknik © (31.05.05 16:10) [13]
он то идет в комлпект поставки, вот только платить надо за каждого клиента отельную плату, и ка каждый сервер, который испльзует мидас ... почитай .... поищи ссылки, мне лень искать, но сталкивался с этим
← →
galexis © (2005-05-31 17:20) [19]
> Rule © (31.05.05 17:14) [18]
Мне Midas нужен только для загрузки данных из XML файла. Я не создаю тонких клиентов и серверов-приложений. Грузится и ладненько.
← →
Rule © (2005-05-31 17:54) [20]galexis © (31.05.05 17:20) [19]
ну в этом случае я думаю не надо, хотя это надо у борландов спрашивать ....
Страницы: 1 вся ветка
Текущий архив: 2005.07.11;
Скачать: CL | DM;
Память: 0.49 MB
Время: 0.042 c