Господа, помогите решить проблему. Надо выполнить из скрипта процедуру MSSQL (сервак на другой машине) и результаты свести в базу MySQL (локально, с РНР). Поддержку MSSQL поставил, Клиент Тулз поставил, вроде видит MSSQL сервак. Но трабла в том, что не могу правильно выполнить процедуру. Не могу найти синтаксис составления запроса. Помогите, дайте код на построчный вывод результата процедуры или сразу импорт в MySQL/ P/S/ премного благодарен.
Четыреста-Четвертая? Вот, проблема подробнее... Коннектит нормально к MSSQL, из таблиц великолепно вытаскивает данные, т.е. модули и все прочее подключено и работает. НО! Но при вызове команды mssql_execute ($param) скрипт тупо подвисает - не выдает никаких данных, останавливаясь после 10-20секундного тормоза. З.Ы. $connect = mssql_connect ("SERV_SUBD", "user", "123456789"); mssql_select_db("BDName",$connect); $stmt = mssql_init("ProcedureName", $connect); $D = "05-05-2006"; mssql_bind($stmt, "@StartParametr", $D , SQLVARCHAR); mssql_execute($stmt) or die("ошибка");
http://ru.php.net/manual/en/function.mssql-execute.php - так более понятно? Насчет подвисания такой глупый вопрос - а ты проверял процедуру на стабильность? Может ей например приходит этот стартовый параметр в какомнить непотребном виде и она врубает бесконечный цикл?
Сорри, но обрабатываю такое количество данных что не успеваю вчитываться в каждую ссылку. Если автора обидел - прошу прощения, ибо не хотел. З.Ы. Не блондинка. параметры запуска идеальны - в том же МатЛабе процедура запускается с такими-же. Досимвольно. Мануалы перечитал все, до которых дотянулся (а тянусь уже четвертый день ). На php.net все функции mssql_* представлены без описания и примеров. Может кто-нибудь порекомендовать хороший мануал с примерами? Теоретически кто-то сталкивался с такой-же проблемой..
Ну так по той ссылке после описалова ф-ции идут юзерские комменты, в которых рассматриваются всякие тонкости. Очень, ОЧЧЕНЬ полезная фича, скажу я вам
Я эти комменты три дня моделирую и переношу на практику. Может повторюсь, но глюк выскакивает при самой функции mssql_execute(ghjk). Искать я продолжаю, но пишу сюда чтобы найти тех кто сталкивался с подобной проблемой или догадывается о причине глюка. Блин, не такой же я и ламер, чтобы не перерыть все sql.ru и php.net на предмет каментов и мануалов... Дело кто-то посоветовать может? На ответ RTFM сразу отвечу - дайте мне этот FM в котором стопудово есть обзор траблы
Спокойствие, только спокойствие. Видимо те кто сталкивался еще сюда не дошли. Как вариант могу предложить: 1. Найти и поставить последнюю версию библиотеки мсскула 2. Обрывать процедуру построчно чтобы найти в каком месте виснет
библиотеки: php_mssql.dll - последняя, идет с РНР5 (на серваке стоит 4.3) ntwdlib.dll (отвечает за протокол) - стоит от MS SErver 2003, из пакета Client Toolz. На каком-то форуме какой-то парниша высказывал идею о том, что MSServer хранит результаты выполнения процедур во временных таблицах в памяти, а РНР такие таблицы не создает и поэтому результат выполнения процедуры просто нуляется и принимает значение TRUE или FALSE в зависимости от успеха выполнения. Может эта теория мне приснилось
Да наверняка MSSQL так и делает. Тока при чем в таком случае РНР??? Логика работы же такая: 1. РНР через библиотеку послал запрос 2. Сервак его отработал, сгенерил результат 3. РНР его забирает Соответственно как он все заберет так сервак результат и грохнет. Или по таймауту. А самому РНР канеш не надо заботиться о том чтобы сервер както хранил результат запроса, это дело самого сервера Кроме как построчно обрывать процедуру и смотреть что она возвращает у меня пока никаких идей нет. Может попробуеш?
Таймауты и прочие лимиты данных выставил до нечеловечески крупных размеров Процедура ничего мне не возвращает, как только начинаю ее выполнять - я не имею доступа на MSSQL сервак , я из другого подразделения, мы делаем систему отчетов на РНР генерации из данных которые считают математики и хранятв MSSQL. Договорились что они перепишут процедуру не на выдачу результата а сохраненния его в таблицу; я оттуда буду тянуть данные. Имхо, это какой-то гиммор в php_mssql.dll . Мало того ребята функции не задокументировали, так еще и их количество просто мизерное Все-таки родная БД для PHP - это MySQL.... P/S/ Если кто-то сталкивался с подобным и разобрался - плиз, поделитесь решением; а если не разобрался - мои сочувствия и не дай вам Аллах столкнутся с этим ))))))