Cannot Create Automation Object

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 805
21
#1
Всем привет!
Пытаюсь доступиться к xls файлу через ADO. Windows 2003 Server 64dit . Офиса нет.
Пи попытке создания объекта Excell.Application возникает ошибка Cannot create automation object. Кто-то сталкивался?
Вопрос ГОРИТ!!!!
 

Omh

Lotus team
04.07.2007
2 210
1
#4
Ну так без проинсталленого офиса такого COM объекта не будет зарегистрировано в системе.
Так что или ставить офис, или, как выражается один уважаемый участник форума, "майрософтовские пердульки" выпилить, перейдя на джаву или что-то в этом роде.
 

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 805
21
#5
Ну так без проинсталленого офиса такого COM объекта не будет зарегистрировано в системе.
Так что или ставить офис, или, как выражается один уважаемый участник форума, "майрософтовские пердульки" выпилить, перейдя на джаву или что-то в этом роде.
Хорошо... есть еще одна проблема.... через тот же ADO пытаюсь доступиться к свойствам поля в таблице MS SQL

Код:
Set RecordSet = CreateObject("ADODB.Recordset")
RecordSet.Open ....
StrSize = RecordSet( "..." ).DefinedSize
Объект открывается, доступ к данным есть... а вот к DefinedSize нету. возвращает ошибку "Не соответствие типов". Хотя этого быть не может.
Дело в том, что с рабочей станции все работает. С сервера нет

Вопрос с Excell'ем решил... что-то тупанул сразу... А вот с доступом к MS SQL не понятно пока
 

morpheus

скриптописец
07.08.2006
3 915
1
#6
NickProstoNick
забудьте про OLE

я только недавно вылечился от падения сервера(из-за CreateObject("ADODB.Recordset") ) заюзав JAVA для коннекта к МС SQL

А эксель не запускаеться именно потому что офис не установлен.

ps
чтото не нахожу такого свойства у рекордсета
http://www.w3schools.com/ado/ado_ref_recordset.asp
 

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 805
21
#7
NickProstoNick
забудьте про OLE

я только недавно вылечился от падения сервера(из-за CreateObject("ADODB.Recordset") ) заюзав JAVA для коннекта к МС SQL

А эксель не запускаеться именно потому что офис не установлен.

ps
чтото не нахожу такого свойства у рекордсета
http://www.w3schools.com/ado/ado_ref_recordset.asp
Пользуюсь этим же ресурсом :)
И прикол в том, что все работало около года... до замены сервера. :)

А по поводу JAVA пробовал курить - не получается :(
Разные версии серверов... разные строки соединения.... и т.д.

но в любом случае сначала надо решить вопрос который есть... а переписыванием займусь позже
 

morpheus

скриптописец
07.08.2006
3 915
1
#8
начсчет явы это ВЫ зря

строку соединения можно и нужно формировать динамически в зависимости от задачи

на яве законектиться это 3 строчки:

C++:
DriverManager.registerDriver(new	com.microsoft.sqlserver.jdbc.SQLServerDriver());
connection = DriverManager.getConnection( tmpDoc.getItemValueString("sqlConn"), tmpDoc.getItemValueString("sqlLogin"), tmpDoc.getItemValueString("sqlPass") );
+ скачать пакет от МС - jdbc 1.2
 

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 805
21
#9
Это все классно... но сначала надо решить вопрос с тем что есть. а потом переписывать
Завтра последний день перед отпуском... на тотальное переписывание нет времени.
И вот собственно еще такой вопрос.... это же наверное полностью все переписывать под Java? Или можно будет как-то сrрестить lotusscript и Java? Просто с таким еще не сталкивался
 

NetWood

Lotus team
17.04.2008
372
18
#11
Excell.Application возникает ошибка Cannot create automation object.
С завидной регулярностью появляется эти месаджи по Cannot create. Не скажу, что боян - сам сталкивался, едва разобрался.
В общем запускаете из командной строки dcomcnfg. Там смотрите в свойствах DСOM приложения Excel и в Удостоверении ставите не Запускающий пользователь, а Текущий пользователь. Иногда требуется указать явно имя пользователя с админскими правами. Тогда этот юзер будет автром создаваемого Excel-обжекта в свойствах файла.

Закрепите, чтоль, админы, или в FAQ.
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
1
#12
А по поводу JAVA пробовал курить - не получается
Конечно курить не получится, бумага тяжелая, краска ядовитая... Читать ее надо было.
Там смотрите в свойствах DСOM приложения Excel
я у себя не нашел екселя, где-то он спрятан глубоко
 

NetWood

Lotus team
17.04.2008
372
18
#13

Akupaka

А че я?.. О.о
04.10.2007
3 360
1
#14
установлен, но кто знает как он в том списке зовется ))
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
1
#16
Нед :) У меня стоит Винда 7, англицкая, с украинским пакетом, на которой стоит украинский офис 2007, в итоге в той тулзе нет ничего схожего с ексель, зато есть куча сидовых записей, типа {7007ACD1-3202-11D1-AAD2-00805FC1270E}. Вот какая-то из них точно ексель )))
Да и какая фиг разница, я просто так сказал, что у меня нет в списке ;)
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 570
263
#17
Akupaka
вот сегда так с МС - не угадаешь чего, в какой версии и куда запишут ;)...
потому я избегаю КОМов и МСО (максимально - где возможно) :)
потому как часто пишут софт http://alexmak.net/blog/2010/10/08/sw-in-india/ и образом отображённым на скульптуре ...
афтора, в его отношении, поддерживаю ;)
 

imendan

Well-known member
22.09.2010
116
0
#18
Доброе время суток, Друзья! И в очередной раз без вашего совета никак (
Есть агент по расписанию. На всех серверах он работает как по маслу, но вот есть один сервер, где он на строке Set Client = CreateObject("MSSOAP.SoapClient30") выдает ошибку Cannot create automation object.
Хотя запускаю этот агент "Раном" на серваке через Лотус Дизайнер, все запускается и работает правильно! Все права дал, базы прописывал, в Документе Сервере во вкладке Безопасность везде добавил учетку Админа. Но вот никак, хотя, повторюсь, на других серверах то же самое работает прекрасно.
Сервер - Windows Server Enterprize.
Domino Server 8.5
:(
 

nvyush

Lotus team
22.04.2009
2 317
0
#19
Похоже, на сервере регистрация в реестре слетела. Когда пускаете агента на клиенте, объект создаётся на клиенте, где очевидно с регистрацией всё в порядке, потому отрабатывает без ошибок.
 

erdi

Well-known member
20.08.2008
265
17
#20
Данная ошибка говорит что в ОС нет зарегистрированного объекта MSSOAP. Попробуй зарегистрировать данный объект на сервере и повторить попытку.
То что все работает когда запускаешь через run, объясняется тем, что объект создается не на сервере, а на твоей машине, на которой MSSOAP уже зарегистрирована