Вход

Просмотр полной версии : Automation server can't create object


codeamateur
17.07.2018, 17:24
Всем привет! Я создал в Майкрософт Визуал Студио App for Office MissingPartEvaluation проект. Этот проект состоит из двух проектов 1. MissingPartEvaluation и 2.MissingPartEvaluationWeb.

Содержание второго проекта я копирую на IIS-Сервер. В первом проекте есть манифест-файл, в котором я поставил


<SourceLocation DefaultValue .../>


таким образом, чтобы во время исполнения программа посылала запрос на IIS-Сервер.

Во втором проекте MissingPartEvaluationWeb мне нужен доступ к базой данных, которая в свою очередь находится на другом сервере. Для этой цели я хочу создать ActiveXObject с помощью


var connection = new ActiveXObject("ADODB.Connection");



К сожалению, во время исполнения программы это ведёт к следующей ошибке.

Error: Error: Automation server can't create object

У кого есть идеи, как можно решить эты проблему?

laimas
17.07.2018, 18:03
new ActiveXObject("ADODB.Connection")

Это не относится к БД на удаленном сервере.

codeamateur
17.07.2018, 18:15
Спасибо за ответ, laimas.

Хорошо, если не относится к БД (= База данных), тогда как мне можно установить связь с базой данных по другому?

laimas
17.07.2018, 18:24
new ActiveXObject("ADODB.Connection") - это объект создаваемый на клиенте, а вы ссылаетесь на базу, которая на каком-то ином сервере. В другой теме вы вообще пишите об MySQL, так вообще причем тут ADODB?

codeamateur
17.07.2018, 18:41
Я написал ADODB.Connection, потому что об этом прочитал в форуме https://stackoverflow.com/questions/857670/how-to-connect-to-sql-server-database-from-javascript-in-the-browser. Там рекомендовалось использовать new АctiveXObject(ADODB.Connection). A как ещё можно в Javascript создать соединение с базой данных?

laimas
17.07.2018, 18:54
A как ещё можно в Javascript создать соединение с базой данных?

В рамках веб страницы и клиентского js-сценария никак. Более того, выполнить ActiveX можно только из под IE и только если это разрешено настройками браузера. В других браузерах этого сделать нельзя. Вне браузера пожалуйста - в VBS, CHM и т.п.

Но коли у вас база это MySQL на удаленном сервере, то подключение к ней и запросы делает серверный скрипт, а JS может только инициализировать запрос к серверу и получить результат запроса к БД серверного скрипта.

PS. У вас точно удаленный сервер или же вы делаете локальный проект и ради базы подняли IIS с РНР, и все выполняется на локальном компьютере?

codeamateur
20.07.2018, 19:28
На локальном компьютере только манифест файл, и всё. Есть отдалённый сервер wosevvt227, это IIS - Server. На нём находятся MissingPartEvaluationWeb и getDataPhpAllowOrigin.php. Кроме этого есть ещё отдалённый SQL сервер VVT415.

На локальном компьютере установлен Визуал Студио. Когда я стартую проект, открывается Майкрософт Эксель и с правой стороны виден Браузер с html-сайтом из MissingPartEvaluationWeb. Если я там нажимаю на кнопку, устанавливается связь с SQL сервером. Т.е. вы правы, вся программа исполняется на клиенте, т.е. на локальном компьютере. Но серверы не виртуальные, они существуют на самом деле.

Но это всё не важно, так как я уже решил мою проблему с помощью XMLHttpRequest.