Duda de novato

13/01/2004 - 23:38 por Carlos Rod | Informe spam
Tengo un cursor una aplicacion para actualizar una tabla de sql server 2000.
No se gran cosa de sql server lo que quiero saber es como busco un registro
en sql server teniendo el valor de la clave primaria ? es necesariamente con
un SELECT aunque sea un solo registro ?

uso Visual Foxpro como interfaz

Preguntas similare

Leer las respuestas

#11 Maximiliano Damian Accotto
16/01/2004 - 00:11 | Informe spam
:o, muy pero muy bien, me pone contento eso y veras que tus aplicaciones te
lo agradeceran a la vez :D


Salu2 enormes

Maximiliano Damian Accotto

Fundicion San Cayetano S.A.
Gerente de IT
Buenos Aires - Argentina
-
Desarrollador 3 estrellas
http://www.microsoft.com/spanish/ms...efault.asp
-
(maxi_accotto[arroba]speedy.com.ar)
MSN:
"erneston" escribió en el mensaje
news:
muchas gracias

estoy digiriendo el concepto

he estado muy casado con los cursores pero los dejare poco a poco

"Maximiliano Damian Accotto" escribió
en el mensaje news:Om83J$
> Disculpame no, pero porque no usar algo asi como:
>
> Un update para aquellos que se encuentran y un Insert para los que no se
> encuentran
>
> ej:
>
> Update tabla set total=total+tabla2.valor
> from tabla inner join tabla2 on
> tabla.campollave = tabla2.campollave
>
> y luego las del insert con NOT IN
>
> insert into tabla (campos)
> select campos where id not in (select id from tabla2)
>
> se entiende?
>
>
>
>
> Salu2 enormes
>
> Maximiliano Damian Accotto
>
> Fundicion San Cayetano S.A.
> Gerente de IT
> Buenos Aires - Argentina
> -
> Desarrollador 3 estrellas
>


http://www.microsoft.com/spanish/ms...efault.asp
> -
> (maxi_accotto[arroba]speedy.com.ar)
> MSN:
> "erneston" escribió en el mensaje
> news:
> >
> > yo uso este cursor para afectar una tabla de existencias
> >
> > voy leyendo los articulos que contiene un movimiento de inventario y
> > dependiendo si es salida o entrada afecto al catalogo de existencias.
> >
> > quisisera que me diera una opinion y me sugirieran como no usar


cursores
> en
> > este caso.
> >
> > gracias
> >
> > DECLARE CRS_EXISTENCIAS CURSOR FOR
> > SELECT C.CANT,C.COD_ART,COSTO_SALIDA FROM INVORDD C INNER JOIN CATARTI


A
> ON
> > A.COD_ART=C.COD_ART WHERE C.IDMOV=@IDMOV AND C.COD_ART<>'-' AND
A.INV='S'
> > FOR READ ONLY
> >
> > OPEN CRS_EXISTENCIAS
> > FETCH NEXT FROM CRS_EXISTENCIAS INTO @CANTIDAD,@COD_ART,@COSTO_SALIDA
> >
> > WHILE @@FETCH_STATUS <> -1
> > BEGIN
> >
> > IF EXISTS(SELECT COD_ART FROM CATEXIS WHERE COD_ART=@COD_ART AND
> > COD_ALM=@COD_ALM)
ALMACEN
> > SE SUMA LA EXISTENCIA
> > UPDATE CATEXIS SET EXISTENCIA= EXISTENCIA+
@CANTIDAD,COSTO=@COSTO_SALIDA
> > WHERE COD_ART=@COD_ART AND COD_ALM=@COD_ALM
> > ELSE
> > BEGIN
EXISTENCIA
> > INSERT CATEXIS (COD_ART,COD_ALM,EXISTENCIA,COSTO) SELECT
> > @COD_ART,@COD_ALM,@CANTIDAD,@COSTO_SALIDA
> > END
> >
> > FETCH NEXT FROM CRS_EXISTENCIAS INTO


@CANTIDAD,@COD_ART,@COSTO_SALIDA
> > END
> > CLOSE CRS_EXISTENCIAS
> > DEALLOCATE CRS_EXISTENCIAS
> >
> > "Eladio Rincón" escribió en el mensaje
> > news:
> > Efectivamente, para recuperar información de una tabla debes hacer un
> > SELECT; sobre el cursor, si la aplicación ya está en producción


entiendo
> que
> > no te plantees reescribir el código que usa tu cursor, pero como norma
> > general debes evitar el uso de cursores; si nos pones el código que


usas
> > para la actualización seguramente podamos echarte una mano ...
> >
> > Saludos,
> >
> > Eladio Rincón
> > MCAD, SQL Server MVP
> > http://www.siquelnet.com
> >
> > "Comparte lo que sabes, aprende lo que no sepas." FGG
> >
> > "Carlos Rod" escribió en el mensaje
> > news:%
> > > Tengo un cursor una aplicacion para actualizar una tabla de sql


server
> > 2000.
> > > No se gran cosa de sql server lo que quiero saber es como busco un
> > registro
> > > en sql server teniendo el valor de la clave primaria ? es
necesariamente
> > con
> > > un SELECT aunque sea un solo registro ?
> > >
> > > uso Visual Foxpro como interfaz
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> >
> >
>
>


Respuesta Responder a este mensaje
#12 erneston
16/01/2004 - 01:13 | Informe spam
muchas gracias

estoy digiriendo el concepto

he estado muy casado con los cursores pero los dejare poco a poco

"Maximiliano Damian Accotto" escribió
en el mensaje news:Om83J$
Disculpame no, pero porque no usar algo asi como:

Un update para aquellos que se encuentran y un Insert para los que no se
encuentran

ej:

Update tabla set total=total+tabla2.valor
from tabla inner join tabla2 on
tabla.campollave = tabla2.campollave

y luego las del insert con NOT IN

insert into tabla (campos)
select campos where id not in (select id from tabla2)

se entiende?




Salu2 enormes

Maximiliano Damian Accotto

Fundicion San Cayetano S.A.
Gerente de IT
Buenos Aires - Argentina
-
Desarrollador 3 estrellas
http://www.microsoft.com/spanish/ms...efault.asp
-
(maxi_accotto[arroba]speedy.com.ar)
MSN:
"erneston" escribió en el mensaje
news:
>
> yo uso este cursor para afectar una tabla de existencias
>
> voy leyendo los articulos que contiene un movimiento de inventario y
> dependiendo si es salida o entrada afecto al catalogo de existencias.
>
> quisisera que me diera una opinion y me sugirieran como no usar cursores
en
> este caso.
>
> gracias
>
> DECLARE CRS_EXISTENCIAS CURSOR FOR
> SELECT C.CANT,C.COD_ART,COSTO_SALIDA FROM INVORDD C INNER JOIN CATARTI A
ON
> A.COD_ART=C.COD_ART WHERE C.IDMOV=@IDMOV AND C.COD_ART<>'-' AND


A.INV='S'
> FOR READ ONLY
>
> OPEN CRS_EXISTENCIAS
> FETCH NEXT FROM CRS_EXISTENCIAS INTO @CANTIDAD,@COD_ART,@COSTO_SALIDA
>
> WHILE @@FETCH_STATUS <> -1
> BEGIN
>
> IF EXISTS(SELECT COD_ART FROM CATEXIS WHERE COD_ART=@COD_ART AND
> COD_ALM=@COD_ALM)


ALMACEN
> SE SUMA LA EXISTENCIA
> UPDATE CATEXIS SET EXISTENCIA= EXISTENCIA+


@CANTIDAD,COSTO=@COSTO_SALIDA
> WHERE COD_ART=@COD_ART AND COD_ALM=@COD_ALM
> ELSE
> BEGIN


EXISTENCIA
> INSERT CATEXIS (COD_ART,COD_ALM,EXISTENCIA,COSTO) SELECT
> @COD_ART,@COD_ALM,@CANTIDAD,@COSTO_SALIDA
> END
>
> FETCH NEXT FROM CRS_EXISTENCIAS INTO @CANTIDAD,@COD_ART,@COSTO_SALIDA
> END
> CLOSE CRS_EXISTENCIAS
> DEALLOCATE CRS_EXISTENCIAS
>
> "Eladio Rincón" escribió en el mensaje
> news:
> Efectivamente, para recuperar información de una tabla debes hacer un
> SELECT; sobre el cursor, si la aplicación ya está en producción entiendo
que
> no te plantees reescribir el código que usa tu cursor, pero como norma
> general debes evitar el uso de cursores; si nos pones el código que usas
> para la actualización seguramente podamos echarte una mano ...
>
> Saludos,
>
> Eladio Rincón
> MCAD, SQL Server MVP
> http://www.siquelnet.com
>
> "Comparte lo que sabes, aprende lo que no sepas." FGG
>
> "Carlos Rod" escribió en el mensaje
> news:%
> > Tengo un cursor una aplicacion para actualizar una tabla de sql server
> 2000.
> > No se gran cosa de sql server lo que quiero saber es como busco un
> registro
> > en sql server teniendo el valor de la clave primaria ? es


necesariamente
> con
> > un SELECT aunque sea un solo registro ?
> >
> > uso Visual Foxpro como interfaz
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
>
>


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