Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Технологии
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 03.11.2017, 10:29
Praefectus Praefectus вне форума
Прохожий
 
Регистрация: 03.11.2017
Сообщения: 3
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Excel выдаёт ошибку "Недостаточно памяти для выполнения операции"

Народ, помогите. Есть древняя программа на Delphi 7. В ней создаются отчёты в Excel через Ole. До недавнего времени всё отлично работало. Поставили новой сотруднице - стала выдаваться ошибка "Недостаточно памяти для выполнения операции".
Система Win 7 x86, Office 2013. На других компьютерах с той же виндой и тем же офисом всё нормально.

Пример кода:
Код:
procedure TMenu.N26Click(Sender: TObject);
var
cntwb:integer;
path,sql:string;
XL: OleVariant;
i,row:integer;

const col_count=3;
begin

try
  XL:=GetActiveOleObject('Excel.Application');
 except
  XL:=CreateOLEObject('Excel.Application');
 end;
 CntWB:=XL.Workbooks.Count+1;
 XL.Visible:=True;
 path:=ExtractFilePath(Application.ExeName)+'Template\org_otch';
 XL.WorkBooks.Add(path);

 XL.Workbooks[CntWB].WorkSheets[1].Name:='Справочник организаций';
...

Ошибка выдаётся на строчке:
Код:
XL.Workbooks[CntWB].WorkSheets[1].Name:='Справочник организаций';

Если её закоментить, то на следующем обращении к Excel:
Код:
XL.Workbooks[CntWB].WorkSheets[1].Cells(row,1):=inttostr(row-4);

Памяти на компе полно свободной. Вообще не знаю, куда копать.
Ответить с цитированием
  #2  
Старый 03.11.2017, 18:52
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,056
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Для начала попробуй запустить программу из под админа.
Ответить с цитированием
  #3  
Старый 06.12.2017, 12:01
dimon753 dimon753 вне форума
Прохожий
 
Регистрация: 15.09.2017
Сообщения: 17
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Полно свободной ОЗУ или ПЗУ?
Ответить с цитированием
  #4  
Старый 11.01.2018, 11:35
Praefectus Praefectus вне форума
Прохожий
 
Регистрация: 03.11.2017
Сообщения: 3
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от lmikle
Для начала попробуй запустить программу из под админа.
То же самое.

Цитата:
Сообщение от dimon753
Полно свободной ОЗУ или ПЗУ?

И того и другого.

Попробовал уже перекомпилировать прогу в Delphi 2010. Та же самая ошибка
Код ошибки: 8007000e

Последний раз редактировалось Praefectus, 11.01.2018 в 13:53.
Ответить с цитированием
  #5  
Старый 11.01.2018, 14:37
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Повторил приведённый код, ошибок нет, работает, возникло лишь предположение - обычно не напрямую с открытой книгой работают, а с её копией, вместо
Код:
...
 XL.WorkBooks.Add(path);
...
лучше добавить
Код:
var
 Workbook: OLEVariant;
...
Workbook:= XL.WorkBooks.Add(path);
и работать уже с Workbook, мож слишком большой кусман оперативки берёт на себя оригинал
Ответить с цитированием
  #6  
Старый 12.01.2018, 10:44
Praefectus Praefectus вне форума
Прохожий
 
Регистрация: 03.11.2017
Сообщения: 3
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alegun
Повторил приведённый код, ошибок нет, работает,

Везде работает, кроме этого компьютера

Цитата:
Сообщение от Alegun
возникло лишь предположение - обычно не напрямую с открытой книгой работают, а с её копией...

Неа, не помогло
Ответить с цитированием
  #7  
Старый 12.01.2018, 12:34
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Цитата:
Сообщение от Praefectus
...Код ошибки: 8007000e
Это же вроде ошибка обновления оськи,
может система сильно загажена,
я бы сначало переустановил винды
или откатил до точки восстановления
и потом делал выводы, случайно, ничего
"тяжёлого" на этот экземпляр в последнее
время не пихали?
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 16:23.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter