![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Delphi и XML datapacket [D7, xml]
Viktor © (2004-10-25 13:56:00)Возникла следующая проблема.
На Delphi написана программа, которая в качестве базы использует
xml datapacket через ClientDataSet,перед у становкой программы ставится MIDAS.DLL.
При запуске программы она подключает файл базы с помощью следующего кода
with cdsRazdPath do
try
if Active then Active:=false;
FileName:=CuDir()+'dat\razdPath.xml';
{CuDir()-возвращает директорию в котор.находится программа
наличие,проверяется наличие'\' в конце}
Active:=true;
except
MessageDlg('Не удалось прочитать
файл...',mtError,mbOK],0);
end;
При запуске на некотрых компьютерах с WindowsXP, в данной процедуре возникает исключительная ситуация, причём файл razdPath.xml полностью очищается. Протестировать не получилось,
на всех наших машинах работает нормально.
Буду благодарен за любой совет.
sniknik (2004-10-26 14:38:00) [1]попробуй у себя на "чистую" машину поставь то же что клиентам даеш, но(!!!) не ставь midas.dll. ошибка не похожая получается?
или уже у клиента стоит более старая версия (как мне кажется ошибка именно с midas.dll)
как ты ее ставиш? если просто переписываеш, толку не будет. пусть руками положат ее из твоей установки (совместить с версией программы) в системный каталог (D:\WINNT\system32\ например)
и зарегистрируют
regsvr32.exe D:\WINNT\system32\midas.dll
после пробуют, что получилось. (???)
DSKalugin (2004-10-26 12:51:00) [2]Ребята, извините что вмешиваюсь... А зачем вообще базу в XML формате хранить??? Это похоже на какое-то извращение или я отстал конкретно от прогресса. Где можно образумиться по этой теме и вычитать преимущества такого изощренного способа?
Просьба дать сылочки раз вы в этом направлении работаете.
Viktor (2004-10-25 15:31:00) [3]Наконец-то пользователи прислали сообщение.
Программа выдаёт следующее:
EsafeArrayLocked Error
Variant or safe array is locked
sniknik (2004-10-25 14:10:00) [4]сорри, DoIfError(); надо убрать.
sniknik (2004-10-25 14:09:00) [5]> Буду благодарен за любой совет.
замени безсмысленное
except
MessageDlg('Не удалось прочитать файл...',mtError,mbOK],0);
end;
на
except
on E: Exception do DoIfError();
MessageDlg('Ошибка при чтении файла...'#10#13+
E.ClassName+#10#13+
E.Message
,mtError,mbOK],0);
end;
а то что это выдаст на той машине где возникает исключительная ситуация копируй сюда.
Reindeer Moss Eater (2004-10-25 14:06:00) [6]except
MessageDlg('Не удалось прочитать
файл...',mtError,mbOK],0);
end;
Если бы не было этого дурацкого блока обработки исключения, ты бы уже знал причину ошибки