Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Ошибка "Разрушительный сбой" [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-сервера. "Иногда вылетает, а иногда не вылетает" - на одном и том же файле или все же на разных? Если на одном и том же вылетает постоянно, то ищи в нем ошибку.


Наверх

Титульная страница Поиск, карта сайта Написать письмо