mssql_execute завершается с ошибкой, «выполнение хранимой процедуры не выполнено» - PullRequest
4 голосов
/ 05 августа 2011

В настоящее время я успешно подключаюсь к базе данных SQL в Windows 2008, используя следующий запрос:

$result = mssql_query("EXEC dbo.stored_procedure_name @param_level = 2");

Я основываю свои запросы на существующем коде, написанном на VB / ADO, который выглядит так:

If level = "" Then level = 1

cmdTT.ActiveConnection = connStrTest1

set objParam=cmdTT.CreateParameter("@param_level", adInteger, adParamInput, 4, level)
cmdTT.Parameters.Append objParam

set rsTT = cmdTT.Execute

Итак, я попытался сделать следующее:

$f = 2;

$stmt = mssql_init('dbo.stored_procedure_name', $mssql_link);

mssql_bind($stmt, "@param_level", $f, SQLINT4, false);

mssql_execute($stmt);

Но независимо от того, какой вариант всегда выводит на печать, выведите предупреждение " Предупреждение: mssql_execute () [function.mssql-execute]: сбой хранимой процедуры в ... " .

Какой лучший способ для меня отладить проблему здесь? Кто-нибудь может увидеть четкое решение моей проблемы?

В настоящее время я удаленно подключаюсь к базе данных из стека LAMP.

Большое спасибо Ian

Ответы [ 3 ]

3 голосов
/ 15 июня 2013

Это с сервера Linux, использующего FreeTDS? Если так, то мне интересно, связано ли это с версией TDS. Попробуй tds version = 8.0 в тебе /etc/freetds.conf

1 голос
/ 10 декабря 2014

Я знаю, что это старый пост, но уверен, что он кому-нибудь поможет.

Вы должны добавить mssql_free_statement($stmt) после выполнения.

1 голос
/ 05 августа 2011

Запустите содержимое хранимой процедуры из редактора sql с жестко запрограммированными параметрами. Таким образом, вы получите больше подробных сообщений об ошибках.

...