-SkyNet-
Новичок
COM: PHP виснет, а JScript (ActiveX) работает
Приветствую, уважаемые!
имеется задача.
по средствам СОМ считать данные из складской программы (sls-склад) через их модуль ActiveSklad ("сервер ole-автоматизации, предоставляющий пользователю набор интерфейсов, предназначенных для работы с базами данных системы SLS-Склад.")
версия php - 4.4
Apache/1.3.12
сам модуль ASklad зарегистрировал утилитой regsvr32
(ось Win XP SP1)
в dcomcnfg соответствующие полномочия доступа выставлены, localhost объявлен надежным узлом
что делаю:
здесь php виснет, в диспетчере задач php съедает полнагрузки проца и 7Мб памяти
и ничего не происходит...
вариант 2:
з.ы. еще пробовал через макрос в excel - тож работает нормально...
вопрос мой очевиден:
как же так - почему PHP подвисает???
в принципе, на JS можно попечатать, но как-то это "через одно место" и , по-моему, несколько несерьезно
хотя можно
короче, хочу чтоб работал любимый php!
жду помощи...
-~{}~ 05.12.05 20:38:
апдейт
я тут подумал
может, нужно работать не с самими интерфейсами, а со ссылками на них?
может это бредовая фраза сама по себе, но тем не менее.
есть ли существенная разница?
читал нововведения php5 и углядел там какие-то поправки в объектной модели, связанные с работой именно с указателями на объекты.
может, можно получить именно указатель на объект, если php4 передает объекты "по значению" записями типа $a->b()
запутался.
тем временем написано 100 строчек рабочего кода на JS...
Приветствую, уважаемые!
имеется задача.
по средствам СОМ считать данные из складской программы (sls-склад) через их модуль ActiveSklad ("сервер ole-автоматизации, предоставляющий пользователю набор интерфейсов, предназначенных для работы с базами данных системы SLS-Склад.")
версия php - 4.4
Apache/1.3.12
сам модуль ASklad зарегистрировал утилитой regsvr32
(ось Win XP SP1)
в dcomcnfg соответствующие полномочия доступа выставлены, localhost объявлен надежным узлом
что делаю:
PHP:
$AxLoader=new COM("SlsSklad.AxLoader");
// создали "основной объект пакета ActiveСклад"
echo $AxLoader->GetVersion;
//напечатали версию (проверили что свойства вызываются)
//теперь вызываем метод - подключаемся к БД
$AxLoader->OpenDatabase("//Server/SLS-Sklad/Links/TEST.DBY");
и ничего не происходит...
вариант 2:
PHP:
<html>
<body>
<script language="JavaScript">
function loadActiveX(){
var aaa="";
var aX = new ActiveXObject('SlsSklad.AxLoader');
aaa+="1 "+aX.ErrDescr+"\n";//ErrDescr - свойство, возвращающее расшифровку ошибки
aX.UseException=0;//потому что исключения не обрабатываем
aX.OpenDatabase("//Server/SLS-Sklad/Links/TEST.DBY");
//здесь всплывает SLS'овское окошко о подключении к базе...
aaa+="2 "+aX.ErrDescr+"\n";
AxSklad = aX.AxSklad();//создается объект для работы с БД
aaa+="3 "+aX.ErrDescr+"\n";
aaa+="4 "+AxSklad.ErrDescr+"\n";
AxSklad.Login("admin", "skynet", "192.168.1.109");//аутентиф.
aaa+="5 "+aX.ErrDescr+"\n";
alert(aaa);//выводится пустой пронумерованный список ошибок
AxSklad=0;//убиваем
aX=0;//объекты
}
</script><body>
<input type=button onclick=loadActiveX() value=test>
</body></html>
вопрос мой очевиден:
как же так - почему PHP подвисает???
в принципе, на JS можно попечатать, но как-то это "через одно место" и , по-моему, несколько несерьезно

короче, хочу чтоб работал любимый php!
жду помощи...
-~{}~ 05.12.05 20:38:
апдейт
я тут подумал
может, нужно работать не с самими интерфейсами, а со ссылками на них?
может это бредовая фраза сама по себе, но тем не менее.
есть ли существенная разница?
читал нововведения php5 и углядел там какие-то поправки в объектной модели, связанные с работой именно с указателями на объекты.
может, можно получить именно указатель на объект, если php4 передает объекты "по значению" записями типа $a->b()
запутался.
тем временем написано 100 строчек рабочего кода на JS...