powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Опять про OLE
16 сообщений из 16, страница 1 из 1
Опять про OLE
    #35651108
soft1986
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!
Столкнулся с таким.

GetFileOpenName ( "Выберите", ls_pathname, ls_filename )
ls_fullname = ls_pathname
// Выбор EXCEL файла

myoleobject = CREATE OLEObject
result = myoleobject.ConnectToObject( ls_fullname )
// result = 0 // Ok
//....
//....
//....
myoleobject.DisconnectObject()
DESTROY myoleobject

Все прекрасно работает.
НО в диспетчере задач остается висеть EXCEL.EXE

При следующей операции
result = -7
Или если открываешь EXCEL извне - системная ошибка.
Как это побороть ? Может что не так делаю ?
...
Рейтинг: 0 / 0
Опять про OLE
    #35651119
Pasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сделайте в конце GarbageCollect ( )
...
Рейтинг: 0 / 0
Опять про OLE
    #35651135
soft1986
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pashaсделайте в конце GarbageCollect ( )

Не помогло.
...
Рейтинг: 0 / 0
Опять про OLE
    #35651152
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
soft1986 пишет:

> Все прекрасно работает.
> НО в диспетчере задач остается висеть EXCEL.EXE

Файл открывал? Закрой его сам или дай возможность сделать это юзеру.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Опять про OLE
    #35651179
VanoR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
перед myoleobject.DisconnectObject()
напишите еще myoleobject.Quit()
...
Рейтинг: 0 / 0
Опять про OLE
    #35651185
VanoR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а возможно еще и myoleobject.ActiveWorkbook.Close()
...
Рейтинг: 0 / 0
Опять про OLE
    #35651190
soft1986
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dim2000
soft1986 пишет:

> Все прекрасно работает.
> НО в диспетчере задач остается висеть EXCEL.EXE

Файл открывал? Закрой его сам или дай возможность сделать это юзеру.


Файл не открывал.
...
Рейтинг: 0 / 0
Опять про OLE
    #35651226
Фотография Riska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
FileClose(li_ole_number)
IF IsValid(ole_book) THEN 
	ole_book.Application.Quit
	ole_book.DisconnectObject()
	DESTROY ole_book
END IF
...
Рейтинг: 0 / 0
Опять про OLE
    #35651330
soft1986
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Riska
Код: plaintext
1.
2.
3.
4.
5.
FileClose(li_ole_number)
IF IsValid(ole_book) THEN 
	ole_book.Application.Quit
	ole_book.DisconnectObject()
	DESTROY ole_book
END IF


А зачем FileClose(li_ole_number), если не было FileOpen?
И потом: все работает(ole_book.Application.Quit),
но если уже открыт EXECL-документ,
то он тут-же закрывается. А это не есть хорошо.
Как быть ?
...
Рейтинг: 0 / 0
Опять про OLE
    #35651389
VanoR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
непонятно!!
Вам надо чтоб и документ в Excel оставался открытым, и процесса в диспетчере задач небыло?
...
Рейтинг: 0 / 0
Опять про OLE
    #35651394
soft1986
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VanoRнепонятно!!
Вам надо чтоб и документ в Excel оставался открытым, и процесса в диспетчере задач небыло?

Если вне приложения открыт EXCEL - то он тут-же закрывается.
А если там у user-а что-то важное висит ?
...
Рейтинг: 0 / 0
Опять про OLE
    #35651474
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Делай ConnecttoNewObject при этом открывается новый инстанс, соответственно и закрывать будешь только его, а без Quit выход не произведен, это все равно что просто открыть Exel, а потом удивляться почему же он открытый висит
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
Опять про OLE
    #35651523
VanoR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда наверно сначала делать ConnecttoObject, если сделается, то в конце не делать Quit, а если не сделается то тогда уж ConnecttoNewObject, с Quit-ом в конце
...
Рейтинг: 0 / 0
Опять про OLE
    #35651544
soft1986
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VanoRТогда наверно сначала делать ConnecttoObject, если сделается, то в конце не делать Quit, а если не сделается то тогда уж ConnecttoNewObject, с Quit-ом в конце

Извиняюсь за настойчивость.
Это Понятно.
А как после успешного ConnecttoNewObject - привязаться к нужному excel-документу.
...
Рейтинг: 0 / 0
Опять про OLE
    #35651578
VanoR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не понял
ConnecttoNewObject и ConnecttoObject- это функции вашей переменной типа OLEObject... с этой переменной и надо потом работать
myoleobject.Application.WorkBooks.Open("файл")

а в конце
myoleobject.DisconnectObject()
если коннектились с ConnecttoNewObject, то тогда еще myoleobject.Quit()
...
Рейтинг: 0 / 0
Опять про OLE
    #35651890
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Работайте с конкретным workbook-ом
ole_object.workbooks(<имя книги>).worksheets(<имя листа>)
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Опять про OLE
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]