использование MSSQL StoredProcedures

  • Автор темы OldKeyboo
  • Дата начала

OldKeyboo

Guest
использование MSSQL StoredProcedures

На php.net предлагают пользовать для этого функцию mssql_execute. Там даже пример есть. Последоватьность действий такая - инициализация SP функцией mssql_init, привязка параметров - mssql_bind, где в качестве параметров этой функции имя процедуры и собственно параметры, и затем сама mssql_execute. Проблема собственно в mssql_bind. Не хочет туда параметр лезть, хоть тресни. Сейчас я пользуюсь двумя mssql_query. Первый содержит екзекут SP с параметрами через запятую, второй выводит результаты из таблицы, сформированной SP. Коряво как-то это все. Опять же приходится держать таблицы для каждого такого вывода.
 

Barlone

Guest
А зачем два запроса ? Почему непосредственно из процедуры нельзя вернуть результаты ?
 

OldKeyboo

Guest
Автор оригинала: Barlone
А зачем два запроса ? Почему непосредственно из процедуры нельзя вернуть результаты ?
Хотел сразу отписать, что не выводит SP записей на броузер. Я сразу так пробовал и не получалось. Однако решил попробовать еше разок. И заработало. Как полезно общаться!
Вероятно в первый раз я пренебрег чувствительностью php к регистру, а теперь это внимательно отследил. В любом случае спасибо. Вопрос использования mssql_binda остается - вдруг он еше быстрее, чем mssql_query работает.
 

Евгений Суреев

Guest
Я использую mssql_bind, но сравнения по скорости не производил.

мне он нравится большим удобством при вызове процедур, хотя в нем и есть некоторые глюки (особенно когда много возвращаемых параметров).

Скажи, в чем у тебя проблема? напиши как вызываешь процедуру. Из-за того, что она недокументирована, много вопросов возникает.
 

tsrodger

Guest
Люди подскажите как правильно использовать mssql_bind если выходной параметр может быть NULL.

Проблема в том, что при если не "инициализировать" необязательные парметры, то в результат НЕ попадет ни одной записи с NULL, при попытке использовать для необязательных парметров
mssql_bind($this->stpr, $PAR_NAME, $PAR_VALUE, $SQL_TYPE, $IS_OUTPUT, true);
ситуация не меняется :(
Значение для $PAR_VALUE пробовал разные ('' null) - но результат один и тот же
 
Сверху