Cursores en SQL Server

13/01/2004 - 03:35 por Kleyber Briceño | Informe spam
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
Hola a todos, un cordial saludo. La cuesti&oacute;n es la siguiente: Tengo
un store procedure en SQL Server 7.0. La variable cursor est&aacute; declarada
como parametro de salida. Mi pregunta es: &iquest;se puede hacer que el
resultado de la consulta que se almacena en este cursor sea recibida en
un Recordset de ADO?, de ser afirmativa la respuesta podr&iacute;a alguien
decirme como o darme un ejemplo de como hacerlo.&nbsp; Estoy usando VB
6.0. Muchas gracias a quien pueda ayudarme.</html>

Preguntas similare

Leer las respuestas

#1 Kleyber Briceño
13/01/2004 - 04:02 | Informe spam
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<body bgcolor="#FFFFFF">
Muchas gracias Maximiliano por responder a mi pregunta. Basicamente mi
idea consiste en traer un conjunto de datos, los cuales tienen como parametro
una fecha. Es decir quiero todas las filas de una fecha determinada o tambien
entre 2 fechas, para mi caso en particular ser&iacute;a lo mismo. Al estar
esos datos dentro de un Recordset, puedo mostrarlos en un Datagrid. La
opcion mas adecuada ser&iacute;a con una Consulta, pero dado que las consultas
como tal no admiten parametros, (y pido disculpas si estoy equivocado),
se me ocurre entonces usar un Store Procedure. Mis conocimientos en SQL
Server son m&iacute;nimos, practicamente estoy empezando, sin embargo ya
he hojedo algunos textos que me he bajado, incluso he leido un poco el
SQLBOL. Muchas gracias por cualquier ayuda que me puedas suministrar. Un
cordial saludo
<p>Maximiliano Damian Accotto wrote:
<blockquote TYPE=CITE><style></style>
<font face="Arial"><font size=-1>Hola,</font></font>&nbsp;<font face="Arial"><font size=-1>dos
cosas:</font></font>&nbsp;<font face="Arial"><font size=-1>1) no se porque
estas usando cursores, quizas nos puedas contar mas el problema y ver si
es que realmente no queda otra opcion que usar un cursor.</font></font><font face="Arial"><font size=-1>Recuerda
que SqlServer esta preparado para trabajar con conjuntos de Datos y no
fila a fila, por lo cual un Cursor lo unico que logra es un pesimo rendimiento
en tus procesos, altos bloqueos,etc.</font></font>&nbsp;<font face="Arial"><font size=-1>2)
Con VB6 es como cualquier otro Store, si usas Dataenvironment, con solo
el hecho de crearte un comando y decirle que es un Store, si lo que quieres
es que lo trabaje como un Recordset, solo deberias setiar eso en el comando,
tal cual lo haces para un comando de una Tabla.</font></font>&nbsp;&nbsp;&nbsp;
<br>--
<p>Salu2 enormes
<br>
<br>Maximiliano Damian Accotto&nbsp;Fundicion San Cayetano S.A.
<br>Gerente de IT
<br>Buenos Aires - Argentina
<br>-
<br>Desarrollador 3 estrellas
<br><a href="http://www.microsoft.com/spanish/ms...t;>http://www.microsoft.com/spanish/msdn/Argentina/desarrollador/default.asp</a>
<br>-
<br>(maxi_accotto[arroba]speedy.com.ar)
<br>MSN: <a href="mailto:"></a>
<blockquote
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">"Kleyber
Brice&ntilde;o" &lt;<a href="mailto:"></a>>
escribi&oacute; en el mensaje <a href="news:">news:</a>...Hola
a todos, un cordial saludo. La cuesti&oacute;n es la siguiente: Tengo un
store procedure en SQL Server 7.0. La variable cursor est&aacute; declarada
como parametro de salida. Mi pregunta es: &iquest;se puede hacer que el
resultado de la consulta que se almacena en este cursor sea recibida en
un Recordset de ADO?, de ser afirmativa la respuesta podr&iacute;a alguien
decirme como o darme un ejemplo de como hacerlo.&nbsp; Estoy usando VB
6.0. Muchas gracias a quien pueda ayudarme.</blockquote>
</blockquote>

</body>
</html>
Respuesta Responder a este mensaje
#2 Kleyber Briceño
13/01/2004 - 04:46 | Informe spam
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<body bgcolor="#FFFFFF">
Gracias por responder de nuevo. El c&oacute;digo que trato de usar&nbsp;
a nivel de VB es el siguiente:
<br>With clsDatos.Command
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .CommandType = adCmdStoredProc
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .CommandText = "Sp_CargaManif"
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Parameters.Append .CreateParameter("@OutCrsr",
, , clsRecordSet.Rst, adParamOutput)
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Parameters.Append .CreateParameter("@pFecha",
adDate, adParamInput, "30/11/2003")
<br>&nbsp;&nbsp; End With
<p>&nbsp;Este codigo no me funciona. S&eacute; que la pregunta que hago
es mas de VB, pero la parte que no entiendo es como recibe el RecordSet
los datos de la consulta, o en otras palabras como sale el resultado de
la consulta provenientes del Store. clsDatos es una clase que he definido
a nivel de Vb para realizar la conexi&oacute;n, ademas la uso para los
objetos de ADO.
<br>&nbsp;
<p>Maximiliano Damian Accotto wrote:
<blockquote TYPE=CITE>&nbsp;<font face="Arial"><font size=-1>Hola, pero
no entiendo como que no podes ponerle un parametro a una consulta?</font></font>&nbsp;<font face="Arial"><font size=-1>ej:</font></font>&nbsp;<font face="Arial"><font size=-1>Select&nbsp;
* from pedidos WHERE fecha >='20040101'</font></font>&nbsp;<font face="Arial"><font size=-1>esto
es lo que buscas?</font></font>&nbsp;<font face="Arial"><font size=-1>vos
a la consulta le podes poner los parametros de busqueda como hice yo y
esto lo pones en un Recordset si quieres o armas un Store que haga esto
mismo, como quieras, para VB es indistinto.</font></font>&nbsp;<font face="Arial"><font size=-1>create
proc maxi @fecha char(10) as</font></font>&nbsp;<font face="Arial"><font size=-1>Select
* from Pedidos Where fecha >= @fecha</font></font>&nbsp;<font face="Arial"><font size=-1>go</font></font>&nbsp;<font face="Arial"><font size=-1>Exec
maxi '20040101'</font></font>&nbsp;&nbsp;
<br>--
<p>Salu2 enormes
<br>
<br>Maximiliano Damian Accotto&nbsp;Fundicion San Cayetano S.A.
<br>Gerente de IT
<br>Buenos Aires - Argentina
<br>-
<br>Desarrollador 3 estrellas
<br><a href="http://www.microsoft.com/spanish/ms...t;>http://www.microsoft.com/spanish/msdn/Argentina/desarrollador/default.asp</a>
<br>-
<br>(maxi_accotto[arroba]speedy.com.ar)
<br>MSN: <a href="mailto:"></a>
<blockquote dir=ltr
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">"Kleyber
Brice&ntilde;o" &lt;<a href="mailto:"></a>>
escribi&oacute; en el mensaje <a href="news:">news:</a>...Muchas
gracias Maximiliano por responder a mi pregunta. Basicamente mi idea consiste
en traer un conjunto de datos, los cuales tienen como parametro una fecha.
Es decir quiero todas las filas de una fecha determinada o tambien entre
2 fechas, para mi caso en particular ser&iacute;a lo mismo. Al estar esos
datos dentro de un Recordset, puedo mostrarlos en un Datagrid. La opcion
mas adecuada ser&iacute;a con una Consulta, pero dado que las consultas
como tal no admiten parametros, (y pido disculpas si estoy equivocado),
se me ocurre entonces usar un Store Procedure. Mis conocimientos en SQL
Server son m&iacute;nimos, practicamente estoy empezando, sin embargo ya
he hojedo algunos textos que me he bajado, incluso he leido un poco el
SQLBOL. Muchas gracias por cualquier ayuda que me puedas suministrar. Un
cordial saludo
<p>Maximiliano Damian Accotto wrote:
<blockquote TYPE="CITE"><style></style>
<font face="Arial"><font size=-1>Hola,</font></font>
<font face="Arial"><font size=-1>dos cosas:</font></font> <font face="Arial"><font size=-1>1)
no se porque estas usando cursores, quizas nos puedas contar mas el problema
y ver si es que realmente no queda otra opcion que usar un cursor.Recuerda
que SqlServer esta preparado para trabajar con conjuntos de Datos y no
fila a fila, por lo cual un Cursor lo unico que logra es un pesimo rendimiento
en tus procesos, altos bloqueos,etc.</font></font> <font face="Arial"><font size=-1>2)
Con VB6 es como cualquier otro Store, si usas Dataenvironment, con solo
el hecho de crearte un comando y decirle que es un Store, si lo que quieres
es que lo trabaje como un Recordset, solo deberias setiar eso en el comando,
tal cual lo haces para un comando de una Tabla.</font></font>
<br>--
<p>Salu2 enormes
<br>
<br>Maximiliano Damian Accotto Fundicion San Cayetano S.A.
<br>Gerente de IT
<br>Buenos Aires - Argentina
<br>-
<br>Desarrollador 3 estrellas
<br><a href="http://www.microsoft.com/spanish/ms...t;>http://www.microsoft.com/spanish/msdn/Argentina/desarrollador/default.asp</a>
<br>-
<br>(maxi_accotto[arroba]speedy.com.ar)
<br>MSN: <a href="mailto:"></a>
<blockquote
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">"Kleyber
Brice&ntilde;o" &lt;<a href="mailto:"></a>>
escribi&oacute; en el mensaje <a href="news:">news:</a>...Hola
a todos, un cordial saludo. La cuesti&oacute;n es la siguiente: Tengo un
store procedure en SQL Server 7.0. La variable cursor est&aacute; declarada
como parametro de salida. Mi pregunta es: &iquest;se puede hacer que el
resultado de la consulta que se almacena en este cursor sea recibida en
un Recordset de ADO?, de ser afirmativa la respuesta podr&iacute;a alguien
decirme como o darme un ejemplo de como hacerlo.&nbsp; Estoy usando VB
6.0. Muchas gracias a quien pueda ayudarme.</blockquote>
</blockquote>
</blockquote>
</blockquote>

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