StoredProc : un array como parámetro ?

10/08/2005 - 21:35 por bajopalabra | Informe spam
se puede pasar
un array como parámetro a un stored proc ?

atte, Hernán

Preguntas similare

Leer las respuestas

#1 Gustavo Larriera [MVP]
10/08/2005 - 21:29 | Informe spam
No. No hay arrays en T-SQL.

Pero los puedes simular, googlea: "t-sql" + arrays



Gustavo Larriera
Uruguay LatAm
Blog: http://sqljunkies.com/weblog/gux/
MVP profile: http://aspnet2.com/mvp.ashx?GustavoLarriera
Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun
derecho / This posting is provided "AS IS" with no warranties, and confers
no rights.
"bajopalabra" wrote in message
news:%
se puede pasar
un array como parámetro a un stored proc ?

atte, Hernán


Respuesta Responder a este mensaje
#2 Alejandro Mesa
10/08/2005 - 21:34 | Informe spam
No, t-sql no incluye arreglos en su arsenal, pero puedes simularlos.

http://www.microsoft.com/communitie...027ab6bbb1


AMB

"bajopalabra" wrote:

se puede pasar
un array como parámetro a un stored proc ?

atte, Hernán



Respuesta Responder a este mensaje
#3 bajopalabra
10/08/2005 - 22:02 | Informe spam
gracias,
entre lo que me indican obtuve lo siguiente,
qué opinan de esta opción ?

DECLARE @doc VARCHAR(500)
DECLARE @XMLDoc INT
SET @doc = '<ROOT>
<Array Id="1" Value="someval1"></Array>
<Array Id="2" Value="someval2"></Array>
<Array Id="3" Value="someval3"></Array>
</ROOT>'
EXEC sp_xml_preparedocument @XMLDoc OUTPUT, @doc
SELECT *
FROM OPENXML (@XMLDoc , '/ROOT/Array', 1 )
WITH (Id INT, Value varchar(15))
EXEC sp_xml_removedocument @XMLDoc

la ayuda de sql dice que msxml utiliza
1/8 de la memoria del servidor...
este método no perjudica el rendimiento del servidor ??


atte, Hernán

"bajopalabra" escribió en el mensaje
news:%
se puede pasar
un array como parámetro a un stored proc ?

atte, Hernán


Respuesta Responder a este mensaje
#4 Maxi
10/08/2005 - 22:15 | Informe spam
Hola, hace un tiempo en mi Blog publique como hacerlo con Xml

http://weblogs.golemproject.com/acc.../3957.aspx

Te digo que yo lo uso con grandes cantidades de datos y es muy eficiente en
todo aspecto


Salu2
Maxi


"bajopalabra" escribió en el mensaje
news:%
gracias,
entre lo que me indican obtuve lo siguiente,
qué opinan de esta opción ?

DECLARE @doc VARCHAR(500)
DECLARE @XMLDoc INT
SET @doc = '<ROOT>
<Array Id="1" Value="someval1"></Array>
<Array Id="2" Value="someval2"></Array>
<Array Id="3" Value="someval3"></Array>
</ROOT>'
EXEC sp_xml_preparedocument @XMLDoc OUTPUT, @doc
SELECT *
FROM OPENXML (@XMLDoc , '/ROOT/Array', 1 )
WITH (Id INT, Value varchar(15))
EXEC sp_xml_removedocument @XMLDoc

la ayuda de sql dice que msxml utiliza
1/8 de la memoria del servidor...
este método no perjudica el rendimiento del servidor ??


atte, Hernán

"bajopalabra" escribió en el mensaje
news:%
se puede pasar
un array como parámetro a un stored proc ?

atte, Hernán






Respuesta Responder a este mensaje
#5 Alejandro Mesa
10/08/2005 - 22:59 | Informe spam
Yo vuelvo a comentar que si el arreglo es de una sola dimension, usar
sp_xml_preparedocument, OPENXML y sp_xml_removedocument es como usar un
tractor para remover la tierra en una maceta. Claro esta que funciona, pero
para arreglos de una dimension existen otras soluciones que brindan mejor
rendimiento y que son tan confiables como usar la version xml. Ademas, se
transmite menos cantidad de informacion atraves de la red, fijate en la
cantidad de caracteres a usar entre una version y la otra. Crear una cadena
como esta es facil, por lo menos con vb 6 y ado, si usamos el metodo
"getrows" del objeto "recordset" para obtener un arreglo y pasr este arreglo
a la funcion "join".

'<ROOT>
<Array Id="1" Value="someval1"></Array>
<Array Id="2" Value="someval2"></Array>
<Array Id="3" Value="someval3"></Array>
</ROOT>'

'someval1|someval2|someval3'

Si el arreglo tiene mas de una dimension y / o se requiere representar la
data de forma jerarquica, entonces el uso de un documento xml es la mejor
opcion.


AMB

"bajopalabra" wrote:

gracias,
entre lo que me indican obtuve lo siguiente,
qué opinan de esta opción ?

DECLARE @doc VARCHAR(500)
DECLARE @XMLDoc INT
SET @doc = '<ROOT>
<Array Id="1" Value="someval1"></Array>
<Array Id="2" Value="someval2"></Array>
<Array Id="3" Value="someval3"></Array>
</ROOT>'
EXEC sp_xml_preparedocument @XMLDoc OUTPUT, @doc
SELECT *
FROM OPENXML (@XMLDoc , '/ROOT/Array', 1 )
WITH (Id INT, Value varchar(15))
EXEC sp_xml_removedocument @XMLDoc

la ayuda de sql dice que msxml utiliza
1/8 de la memoria del servidor...
este método no perjudica el rendimiento del servidor ??


atte, Hernán

"bajopalabra" escribió en el mensaje
news:%
> se puede pasar
> un array como parámetro a un stored proc ?
>
> atte, Hernán
>
>



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida