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

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

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;


Если бы не было этого дурацкого блока обработки исключения, ты бы уже знал причину ошибки


Наверх

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