![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Удаление из памяти Excel [D7, Win2k]
r9000 © (2004-07-02 08:31:00)Добрый день!
Не могли бы вы сказать, как можно удалить из памяти Excel?
Т.е. делаю так
if OpenDialog1.Execute then
begin
ea:=CreateOleObject('Excel.Application');
WB:=ea.WorkBooks.open(OpenDialog1.FileName,true);
s:=WB.sheets[1].cells[1,2].value;
for j:=2 to 3000 do
begin
s1:=WB.sheets[1].cells[j,1].value;
s2:=WB.sheets[1].cells[j,2].value;
s3:=WB.sheets[1].cells[j,3].value;
s4:=WB.sheets[1].cells[j,4].value;
Application.ProcessMessages;
if (s1<>'') or (s2<>'') or (s3<>'') or (s4<>'') then
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('insert into a_trunk (Route,System_,NA,ATS) VALUES('''+s1+''','''+s2+''','''+s3+''','''+s4+''')');
ADOQuery1.ExecSQL;end;
end;
ea.visible:=true;
вручную закрываю Excel, а он остается в памяти. Что делать?
Как его убрать?
r9000 (2004-07-02 11:34:00) [1]Спасибо получилось!
Iconka (2004-07-02 09:42:00) [2]Мне нравится название темы :)
Я тоже хочу забыть этот Excel, Word и другие страшные слова....
Думкин (2004-07-02 09:30:00) [3]ComObj, ActiveX,
begin...end (2004-07-02 09:28:00) [4]uses ?
КаПиБаРа (2004-07-02 09:26:00) [5]..пииип.. Какой? Полный текст ошибки.
r9000 (2004-07-02 09:13:00) [6]Необьявленный идентификатор
КаПиБаРа (2004-07-02 09:11:00) [7]Как ругается?
r9000 (2004-07-02 08:58:00) [8]Ругается на строчку
Result := GetActiveObject(ProgIDToClassID(AppProgID),nil,Unknown);
Думкин (2004-07-02 08:37:00) [9]Да, try надо еще всунуть перед одной строкой.
Думкин (2004-07-02 08:35:00) [10]
var
Excel : OleVariant;
AppProgID : string;
ServerIsRunning : boolean;
Result : HResult;
Unknown : IUnknown;
begin
AppProgID := 'Excel.Application';
ServerIsRunning := false;
Result := GetActiveObject(ProgIDToClassID(AppProgID),nil,Unknown);
if Result = MK_E_UNAVAILABLE
then Excel := CreateOleObject(AppProgID)
else begin
Excel := GetActiveOleObject(AppProgID);
ServerIsRunning := true
end;
Excel.Visible := true;
.....
finally
if not ServerIsRunning then Excel.Quit;
Excel := Unassigned
end;
У Тенцера сие.