Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MS SQL Server
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-08-2006
alexander66 alexander66 is offline
Miembro
 
Registrado: jul 2006
Posts: 21
Poder: 0
alexander66 Va por buen camino
Por que da otros resultados un Sp de sql server usando cursores

saludos club, disponemos de sql server 2000 standard edition, el cual he creado un store procedure para hacer unas actualizaciones de precios de ventas y consiste en que aumenta el precio de venta en un 10 % si la existencia es menor a 1000 en caso contrario un 5 %
Código PHP:
la tabla es esta:
CREATE TABLE [dbo].[Productos] (
 [
Prodcuto_id] [intIDENTITY (11NOT NULL ,
 [
producto] [varchar] (50COLLATE Latin1_General_BIN NULL ,
 [
existencia] [floatNULL ,
 [
preciovta] [floatNULL ,
 [
Porcentaje] [floatNULL
ON [PRIMARY
El sp es el siguiente pero se supone que con un bucle de cursor me actualizaria el precio_venta pero no es asi me da otro valores como resultado, sin importarle que valor tenga en el campo existencia.

Código PHP:
CREATE PROCEDURE incrementa AS
Declare @
Producto varchar(50)
Declare @
Existencia Numeric(18,2)
Declare 
curejemplo  Cursor For
Select productoexistencia from Productos
open curejemplo
Begin Transaction
Fetch next from curejemplo into 
@Producto, @Existencia
If @@Fetch_status 0
 begin
 
if @Existencia 1000
 update Productos set preciovta 
preciovta 1.10
 
else
 if @
Existencia 1000
 update Productos set preciovta 
preciovta 1.05

Fetch next from curejemplo into 
@Producto, @Existencia
end
Commit Transaction
close curejemplo
Deallocate curejemplo
GO 
Gracias, tambien pense en modificar el sp de este modo y alamcenar el porcentaje en el campo Porcentaje y aun asi no da el resultado apropiado preciovta = preciovta * 0.1.
Responder Con Cita
  #2  
Antiguo 28-08-2006
Avatar de edgusano
edgusano edgusano is offline
Miembro
 
Registrado: abr 2004
Ubicación: Medellin Colombia
Posts: 180
Poder: 21
edgusano Va por buen camino
Revisa la condicion del update puesto que por cada pasada del cursos esta actualizando todos los registros de la tabla productos y no en el que va el cursor.
__________________
Optimus Prime
Responder Con Cita
  #3  
Antiguo 28-08-2006
luisgutierrezb luisgutierrezb is offline
Miembro
 
Registrado: oct 2005
Ubicación: México
Posts: 925
Poder: 19
luisgutierrezb Va por buen camino
Bueno, en primera, no veo un bucle que te haga recorrer TODOS los registros de la tabla, por eun ejemplo un while @@Fetch_status = 0
otra cosa, en el update le estas diciendo que te actulice TODOS los campos, no tiene una clausula where que identifique especificamente el campo...
Responder Con Cita
  #4  
Antiguo 29-08-2006
alexander66 alexander66 is offline
Miembro
 
Registrado: jul 2006
Posts: 21
Poder: 0
alexander66 Va por buen camino
oK gracias club ya modifique el sp y funciono estos son los cambios, en caso dado corriganme si hay algo mal.


Código PHP:
while @@Fetch_status 0
 begin
 
if @Existencia 1000
 update Productos set preciovta 
preciovta 1.10 where prod_id= @ID
...
un while qse ejecute mientras y un where para saber a que registro actualizar

Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Cursores Perrero80 OOP 1 05-05-2006 17:52:40
usando embedded server con UDF's lpmlpm Firebird e Interbase 1 10-10-2005 18:10:58
Dos cursores a la vez lucasarts_18 MS SQL Server 6 05-10-2005 16:33:46
Cursores... dunia_lv SQL 1 05-04-2005 17:52:53
Enviar fax usando el fax de windows 2000 server DrMatasanos Varios 0 21-05-2003 10:17:37


La franja horaria es GMT +2. Ahora son las 15:03:37.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi