Доступ к MS Word через OLE из веб-сервиса
От: Alex4004  
Дата: 12.10.11 11:24
Оценка:
Из веб-сервиса (cgi) вызывается такой код:

...
var
  WordApp:OleVariant;
  ...
begin
     ...

      CoInitialize(nil);

      WordApp:=CreateOleObject('Word.Application');
      WriteToLogFile('1');
      try
        WordApp.DisplayAlerts:=false;
        WriteToLogFile('2');
        WordApp.Documents.add;    //тут вылетает exception
        WriteToLogFile('3');

        ...

      except on E: Exception do
        begin
          WriteToLogFile(E.Message);
          sf:=wdDoNotSaveChanges;
          WordApp.Quit(sf);
          WordApp:=Unassigned;
          CoUninitialize;
        end;
      end;

     ...


В логе появляется следующее:

1
2
Ошибка в Word


Если вызывать этот же код не из веб-сервиса, то все работает.

Пробовал достучаться к ворду через компонент TWordDocument — на строчке добавления документа (или открытия существующего, без разницы) сервис просто зависает.

P.S. Я не знаток Delphi, но информативность сообщения об ошибке меня больше всего напрягает в этой истории Может я что-то не так делаю?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.