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