Передача параметров в ХП
От: merlinJap  
Дата: 18.06.04 14:34
Оценка:
Доброго времени суток

Созрел такой вопрос, возможно ли передать хранимой процедуре (или функции) n-ое кол-во параметров,
например как это делаеться в printf(char*,...).
Если можно, то как?

С уважением merlinJap
С уважением merlinjap.
Re: Передача параметров в ХП
От: aka50 Россия  
Дата: 18.06.04 14:48
Оценка:
Здравствуйте, merlinJap, Вы писали:

J>Доброго времени суток


J>Созрел такой вопрос, возможно ли передать хранимой процедуре (или функции) n-ое кол-во параметров,

J>например как это делаеться в printf(char*,...).
J>Если можно, то как?

J>С уважением merlinJap


ты не указал базу... но под Оракле

http://ccm.redhat.com/bboard-archive/webdb/0006nR.html
Re: Передача параметров в ХП
От: EM Великобритания  
Дата: 18.06.04 15:08
Оценка: +1
Здравствуйте, merlinJap, Вы писали:

J>Созрел такой вопрос, возможно ли передать хранимой процедуре (или функции) n-ое кол-во параметров,

J>Если можно, то как?

Нельзя.
Если все-таки очень хочется, используйте временные таблицы
Опыт — это такая вещь, которая появляется сразу после того, как была нужна...
Re: Передача параметров в ХП
От: AntoxaM  
Дата: 18.06.04 15:20
Оценка: +1
Здравствуйте, merlinJap, Вы писали:

J>Созрел такой вопрос, возможно ли передать хранимой процедуре (или функции) n-ое кол-во параметров,

J>например как это делаеться в printf(char*,...).
J>Если можно, то как?
поиск рулит
Re: Передача параметров в ХП
От: Romull  
Дата: 18.06.04 15:33
Оценка: +1
Здравствуйте, merlinJap, Вы писали:

J>Доброго времени суток


J>Созрел такой вопрос, возможно ли передать хранимой процедуре (или функции) n-ое кол-во параметров,

J>например как это делаеться в printf(char*,...).
J>Если можно, то как?

J>С уважением merlinJap


Как это ни печально, но в SQLServer2000 такой возможности пока нет. Однако можно создавать налету временные хранимые процедуры (и не временные) с любым кол-вом входных параметров.
Re: Передача параметров в ХП
От: sh0ck_file Россия sh0ck-file.fromru.com
Дата: 19.06.04 16:17
Оценка:
Здравствуйте, merlinJap, Вы писали:

J>Созрел такой вопрос, возможно ли передать хранимой процедуре (или функции) n-ое кол-во параметров,

J>например как это делаеться в printf(char*,...).
J>Если можно, то как?

А под какой сервер БД?
http://www.sh0ckfile.avan-post.ru
Re: Передача параметров в ХП
От: Johnmen  
Дата: 19.06.04 21:13
Оценка: 1 (1)
Нет, нельзя.
Но можно передать строку, которую разобрать в процедуре...
Re: Передача параметров в ХП
От: FantomGood Украина  
Дата: 21.06.04 10:16
Оценка:
Здравствуйте, merlinJap, Вы писали:

J>Доброго времени суток


J>Созрел такой вопрос, возможно ли передать хранимой процедуре (или функции) n-ое кол-во параметров,

J>например как это делаеться в printf(char*,...).
J>Если можно, то как?

J>С уважением merlinJap


под SQLServer2000 можно передать в качесве параметра XML — и потом разобрать его, благо работа c XML — уже реализована (sp_xml_preparedocument ) или же как советовали просто передавать стоку и разбирирать её.
Re[2]: Передача параметров в ХП
От: rus blood Россия  
Дата: 21.06.04 11:03
Оценка:
FG>под SQLServer2000 можно передать в качесве параметра XML — и потом разобрать его, благо работа c XML — уже реализована (sp_xml_preparedocument ) или же как советовали просто передавать стоку и разбирирать её.

Поскольку имеется ограничение на длину строк, с которой можно работать в SP, то лучше не мутить с XML — слишком неэкономно расходуется строка параметра...
Имею скафандр — готов путешествовать!
Re[3]: Передача параметров в ХП
От: FantomGood Украина  
Дата: 21.06.04 11:56
Оценка:
Здравствуйте, rus blood, Вы писали:


RB>Поскольку имеется ограничение на длину строк, с которой можно работать в SP, то лучше не мутить с XML — слишком неэкономно расходуется строка параметра...



достаточно ntext передать в хранимую продцедуру, 2000SQLServer это позволяет, 2Гига думаю достаточно, правда зачем это нужно это уже другой вопрос
Re[4]: Передача параметров в ХП
От: rus blood Россия  
Дата: 21.06.04 12:20
Оценка: -1
FG>
FG>достаточно ntext передать в хранимую продцедуру, 2000SQLServer это позволяет, 2Гига думаю достаточно, правда зачем это нужно это уже другой вопрос
FG>

В SP на сиквеле нельзя работать с переменными типа text.
Ну придет тебе 2 гига в параметре, и что дальше?
Имею скафандр — готов путешествовать!
Re[5]: Передача параметров в ХП
От: Merle Австрия http://rsdn.ru
Дата: 21.06.04 12:36
Оценка: 35 (2)
Здравствуйте, rus blood, Вы писали:

RB>В SP на сиквеле нельзя работать с переменными типа text.

В целом нельзя, но в частности...

RB>Ну придет тебе 2 гига в параметре, и что дальше?

А дальше sp_xml_preparedocument работает с text'ами с огромным удовольствием...

sp_xml_preparedocument hdoc OUTPUT [, xmltext]
....
[xmltext]
Is the original XML document. The MSXML parser parses this XML document. xmltext is a text (char, nchar, varchar, nvarchar, text, or ntext) parameter.


Вот тебе живой пример:

-- Создаем процедуру
--
create procedure ab
 @a text
as 
DECLARE @idoc int

-- Create an internal representation of the XML document.
EXEC sp_xml_preparedocument @idoc OUTPUT, @a
-- Execute a SELECT statement using OPENXML rowset provider.
SELECT *
FROM OPENXML (@idoc, '/ROOT/Customer',1)
      WITH (CustomerID  varchar(10),
            ContactName varchar(20))
EXEC sp_xml_removedocument @idoc


-- Используем:
--
execute ab '
<ROOT>
<Customer CustomerID="VINET" ContactName="Paul Henriot">
   <Order OrderID="10248" CustomerID="VINET" EmployeeID="5" 
          OrderDate="1996-07-04T00:00:00">
      <OrderDetail ProductID="11" Quantity="12"/>
      <OrderDetail ProductID="42" Quantity="10"/>
   </Order>
</Customer>
<Customer CustomerID="LILAS" ContactName="Carlos Gonzlez">
   <Order OrderID="10283" CustomerID="LILAS" EmployeeID="3" 
          OrderDate="1996-08-16T00:00:00">
      <OrderDetail ProductID="72" Quantity="3"/>
   </Order>
</Customer>
</ROOT>'

Наслаждаемся результатом:
CustomerID ContactName          
---------- -------------------- 
VINET      Paul Henriot
LILAS      Carlos Gonzlez
... [RSDN@Home 1.1.3 stable]
Мы уже победили, просто это еще не так заметно...
Re[6]: Передача параметров в ХП
От: rus blood Россия  
Дата: 21.06.04 12:50
Оценка:
M>Вот тебе живой пример:

ПонЯл...
Имею скафандр — готов путешествовать!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.