Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Error en mi procedimiento

Estas en el tema de Error en mi procedimiento en el foro de SQL Server en Foros del Web. Hola amigos del foro espero puedan ayudar he estado haciendo un procedimiento almacenado para descontar productos de la base de datos por ejemplo si tengo ...
  #1 (permalink)  
Antiguo 07/07/2011, 08:48
Avatar de galletica12  
Fecha de Ingreso: mayo-2011
Ubicación: Tekax, Yucatán
Mensajes: 213
Antigüedad: 12 años, 11 meses
Puntos: 8
Error en mi procedimiento

Hola amigos del foro espero puedan ayudar he estado haciendo un
procedimiento almacenado para descontar productos de la base de datos
por ejemplo si tengo 20 jabones en mi bd se venden 5 deben quedar 15
jabones. el que hize me hace el descuento pero solo de un jabon cuando
se vendieron 5 espero puedan ayudarme aqui les dejo mi procedimiento almacenado:

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[pa_SelDatosVentaMax]
AS
SELECT ISNULL(MAX(Cantidad)-1,1) AS Valor FROM Productos

Saludos...
  #2 (permalink)  
Antiguo 07/07/2011, 08:57
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Error en mi procedimiento

Prueba con algo asi :)

ALTER PROCEDURE [dbo].[pa_SelDatosVentaMax] (@vendidos as int)
AS
SELECT ISNULL(MAX(Cantidad)-@vendidos,1) AS Valor FROM Productos


Saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 07/07/2011, 10:58
Avatar de galletica12  
Fecha de Ingreso: mayo-2011
Ubicación: Tekax, Yucatán
Mensajes: 213
Antigüedad: 12 años, 11 meses
Puntos: 8
Respuesta: Error en mi procedimiento

De esa forma se descontaria la cantidad de productos vendido.
Bueno lo voy a checar luego te digo
como me funciono.
  #4 (permalink)  
Antiguo 17/08/2011, 10:35
Avatar de galletica12  
Fecha de Ingreso: mayo-2011
Ubicación: Tekax, Yucatán
Mensajes: 213
Antigüedad: 12 años, 11 meses
Puntos: 8
Pregunta Respuesta: Error en mi procedimiento

No me funciono tu ejemplo y cree otro:

Código:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[DescontarElProducto]
(
    @Cantidad Numeric,
    @cod int
)
AS
    SET NOCOUNT OFF;
UPDATE       Producto
SET                Cantidad = Cantidad - @Cantidad
WHERE        (IdProducto = @cod)
pero al abrir mi formulario de venta me manda un error que dice el procedimiento almacenado o la funcion no pudo controlar el parametro @Cantidad.

espero puedan ayudarme.
__________________
Info y Servicios http://www.pc-land.webege.com/ Saludos...:adios:.
  #5 (permalink)  
Antiguo 17/08/2011, 10:47
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Error en mi procedimiento

¿No pudo controlar el parametro?

Envia el TEXTO INTEGRO del error, si esta en ingles, mandalo asi.
__________________
MCTS Isaias Islas
  #6 (permalink)  
Antiguo 17/08/2011, 10:58
Avatar de galletica12  
Fecha de Ingreso: mayo-2011
Ubicación: Tekax, Yucatán
Mensajes: 213
Antigüedad: 12 años, 11 meses
Puntos: 8
Sonrisa Respuesta: Error en mi procedimiento

Este es el error que me manda:



Si se ve pequeña aqui:

http://4.bp.blogspot.com/-KYxjXVPiF_...600/Dibujo.JPG
__________________
Info y Servicios http://www.pc-land.webege.com/ Saludos...:adios:.
  #7 (permalink)  
Antiguo 17/08/2011, 13:40
Avatar de galletica12  
Fecha de Ingreso: mayo-2011
Ubicación: Tekax, Yucatán
Mensajes: 213
Antigüedad: 12 años, 11 meses
Puntos: 8
Respuesta: Error en mi procedimiento

alguna ayuda por favor...
__________________
Info y Servicios http://www.pc-land.webege.com/ Saludos...:adios:.
  #8 (permalink)  
Antiguo 17/08/2011, 13:47
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Error en mi procedimiento

Cual es la instruccion antes de la que marcas da.fill(ds)

Saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #9 (permalink)  
Antiguo 17/08/2011, 13:52
Avatar de galletica12  
Fecha de Ingreso: mayo-2011
Ubicación: Tekax, Yucatán
Mensajes: 213
Antigüedad: 12 años, 11 meses
Puntos: 8
Respuesta: Error en mi procedimiento

Bueno yo lo tengo por capas pero de esta forma trato de llamarlo.

Código:
DataTable dtVenta = negVentas.DescontarProductos();
            if (dtVenta.Rows.Count > 0)
            {
                txtCantidad.Text = util.ValorCampo(dtVenta, "Cantidad");
            }
__________________
Info y Servicios http://www.pc-land.webege.com/ Saludos...:adios:.
  #10 (permalink)  
Antiguo 17/08/2011, 14:15
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Error en mi procedimiento

Lo siento, pero esto ya no es de SQL Server, segun entiendo, te falta pasar el parametro de @Cantidad
__________________
MCTS Isaias Islas
  #11 (permalink)  
Antiguo 17/08/2011, 14:20
Avatar de galletica12  
Fecha de Ingreso: mayo-2011
Ubicación: Tekax, Yucatán
Mensajes: 213
Antigüedad: 12 años, 11 meses
Puntos: 8
Respuesta: Error en mi procedimiento

Umm graxias creo que ire al foro de .net

graxias de todas maneras.
__________________
Info y Servicios http://www.pc-land.webege.com/ Saludos...:adios:.
  #12 (permalink)  
Antiguo 18/08/2011, 12:58
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Error en mi procedimiento

Postea todo el codigo que interviene al momento que haces la consulta en tu proyecto, porque ese error no es de sql sino de algun parametro que pudiste haberte olvidado al llamar al metodo desde codigo.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net

Última edición por Aquaventus; 18/08/2011 a las 13:24
  #13 (permalink)  
Antiguo 18/08/2011, 14:40
Avatar de galletica12  
Fecha de Ingreso: mayo-2011
Ubicación: Tekax, Yucatán
Mensajes: 213
Antigüedad: 12 años, 11 meses
Puntos: 8
Sonrisa Respuesta: Error en mi procedimiento

este es el codigo con el que trato de llamar el procedimiento

Código:
namespace Datos
{
    public class Ventas
    {
        Conexion.Conexion cn = new Conexion.Conexion();

 public DataSet DescontarProducto()
        {
            return SqlHelper.ExecuteDataset(cn.conexionBD(), 
                "pa_Descontar");                  
        }       
    }
}

-------------------------------------------------------

namespace Negocio
{
    public class Ventas
    {
        Datos.Ventas datos = new Datos.Ventas();

public DataTable DescontarProductos()
        {
            return datos.DescontarProducto().Tables[0];
        }
    }
}

-------------------------------------------------------

DataTable dtVenta = negVentas.DescontarProductos();
            if (dtVenta.Rows.Count > 0)
            {
                txtCantidad.Text = util.ValorCampo(dtVenta, "Cantidad");
            }
Todo lo estoy haciendo por capas.
__________________
Info y Servicios http://www.pc-land.webege.com/ Saludos...:adios:.
  #14 (permalink)  
Antiguo 18/08/2011, 14:44
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Error en mi procedimiento

Y en que momento le pasas los parametros a tu procedure? porque según lo que veo no le pasas nada. Saludos!.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #15 (permalink)  
Antiguo 18/08/2011, 14:49
Avatar de galletica12  
Fecha de Ingreso: mayo-2011
Ubicación: Tekax, Yucatán
Mensajes: 213
Antigüedad: 12 años, 11 meses
Puntos: 8
Respuesta: Error en mi procedimiento

Ese es el problema he estado buscando como pasarle el parametro ya me he rompido la cabeza hasta mas no poder y he estado googleando como pasar parametros y no he dado con una solucion.
__________________
Info y Servicios http://www.pc-land.webege.com/ Saludos...:adios:.
  #16 (permalink)  
Antiguo 18/08/2011, 14:57
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Error en mi procedimiento

OK veo que usas SQLHELPER... ahora dime que es lo que esta en rojo:

public DataSet DescontarProducto()
{
return SqlHelper.ExecuteDataset(cn.conexionBD(),
"pa_Descontar");
}
}

Un procedimiento? Si es asi pasame el procedimiento. Saludos.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #17 (permalink)  
Antiguo 18/08/2011, 15:05
Avatar de galletica12  
Fecha de Ingreso: mayo-2011
Ubicación: Tekax, Yucatán
Mensajes: 213
Antigüedad: 12 años, 11 meses
Puntos: 8
Respuesta: Error en mi procedimiento

Si es el nombre del procedimieno almacenado.

Código:
Alter Procedure [dbo].[pa_Descontar]

@Cantidad Numeric

AS

Select Cantidad - @Cantidad as Vendido from Producto
es otra forma a la delas que puse anterior mente.
__________________
Info y Servicios http://www.pc-land.webege.com/ Saludos...:adios:.
  #18 (permalink)  
Antiguo 18/08/2011, 15:11
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Error en mi procedimiento

OK deberias pasarle parametros a tus metodos y asignarlas al sqlhelper respetando el orden los parametros de tu procedure :

Cita:
namespace Datos
{
public class Ventas
{
Conexion.Conexion cn = new Conexion.Conexion();

public DataSet DescontarProducto(Integer cantidad)
{
return SqlHelper.ExecuteDataset(cn.conexionBD(),
"pa_Descontar",cantidad);
}
}
}

-------------------------------------------------------

namespace Negocio
{
public class Ventas
{
Datos.Ventas datos = new Datos.Ventas();

public DataTable DescontarProductos(Integer cantidad)
{
return datos.DescontarProducto(cantidad).Tables[0];
}
}
}

-------------------------------------------------------
Dim cantidad As Integer = 0 'Aqui tu le pones la cantidad que deseas pasarle
DataTable dtVenta = negVentas.DescontarProductos(cantidad);
if (dtVenta.Rows.Count > 0)
{
txtCantidad.Text = util.ValorCampo(dtVenta, "Cantidad");
}
Saludos!.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #19 (permalink)  
Antiguo 18/08/2011, 15:32
Avatar de galletica12  
Fecha de Ingreso: mayo-2011
Ubicación: Tekax, Yucatán
Mensajes: 213
Antigüedad: 12 años, 11 meses
Puntos: 8
Respuesta: Error en mi procedimiento

ahorita me manda este error

"Parameter count does not match parameter value count"
__________________
Info y Servicios http://www.pc-land.webege.com/ Saludos...:adios:.
  #20 (permalink)  
Antiguo 18/08/2011, 15:34
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Error en mi procedimiento

ese error de que procedure te sale?
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #21 (permalink)  
Antiguo 18/08/2011, 15:37
Avatar de galletica12  
Fecha de Ingreso: mayo-2011
Ubicación: Tekax, Yucatán
Mensajes: 213
Antigüedad: 12 años, 11 meses
Puntos: 8
Respuesta: Error en mi procedimiento

del De "pa_Descontar"
__________________
Info y Servicios http://www.pc-land.webege.com/ Saludos...:adios:.
  #22 (permalink)  
Antiguo 18/08/2011, 15:44
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Error en mi procedimiento

Mmmm se me hace raro... es como si le estuviese faltando un parametro mas... no has modificado tu procedure?
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #23 (permalink)  
Antiguo 18/08/2011, 15:49
Avatar de galletica12  
Fecha de Ingreso: mayo-2011
Ubicación: Tekax, Yucatán
Mensajes: 213
Antigüedad: 12 años, 11 meses
Puntos: 8
Respuesta: Error en mi procedimiento

si le agrege otro el @IdProducto por que corrio el programa pero no me desconto la cantidad asi que le agrege otro parametro quedo asi:
Código:
Alter Procedure [dbo].[pa_Descontar]
@IdProducto int,
@Cantidad Numeric

AS

Select Cantidad - @Cantidad as Vendido from Producto
where IdProducto = @IdProducto
intente usar este pero me mando el mismo error.

Código:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[DescontarElProducto]
(
    @Cantidad Numeric,
    @cod int
)
AS
    SET NOCOUNT OFF;
UPDATE       Producto
SET                Cantidad = Cantidad - @Cantidad
WHERE        (IdProducto = @cod)
__________________
Info y Servicios http://www.pc-land.webege.com/ Saludos...:adios:.
  #24 (permalink)  
Antiguo 18/08/2011, 15:55
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Error en mi procedimiento

Claro que te va a dar otro error porque tienes que pasarle el otro parametro por codigo! en tu capa datos dale una coma mas y crea el nuevo parametro y pasaselo al sqlhelper y modificar la capa negocios y en tu presentacion. Saludos!.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #25 (permalink)  
Antiguo 18/08/2011, 15:57
Avatar de galletica12  
Fecha de Ingreso: mayo-2011
Ubicación: Tekax, Yucatán
Mensajes: 213
Antigüedad: 12 años, 11 meses
Puntos: 8
Respuesta: Error en mi procedimiento

ah ok bueno lo voy a hacer luego te digo x que ya voy de salida.

Graxias... :Adios:
__________________
Info y Servicios http://www.pc-land.webege.com/ Saludos...:adios:.
  #26 (permalink)  
Antiguo 19/08/2011, 09:28
Avatar de galletica12  
Fecha de Ingreso: mayo-2011
Ubicación: Tekax, Yucatán
Mensajes: 213
Antigüedad: 12 años, 11 meses
Puntos: 8
Pregunta Respuesta: Error en mi procedimiento

Disculpa de que forma le paso el parametro al sqlhelper???
__________________
Info y Servicios http://www.pc-land.webege.com/ Saludos...:adios:.
  #27 (permalink)  
Antiguo 19/08/2011, 09:41
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Error en mi procedimiento

como te pasé en el codigo anterior... solo que le agregas 1 mas

Cita:
namespace Datos
{
public class Ventas
{
Conexion.Conexion cn = new Conexion.Conexion();

public DataSet DescontarProducto(Integer cantidad, TIPO PARAMETRO2)
{
return SqlHelper.ExecuteDataset(cn.conexionBD(),
"pa_Descontar",cantidad,PARAMETRO2);
}
}
}
y asi modificas tambien en la capa negocios y en la llamada al metodo.
Saludos!.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #28 (permalink)  
Antiguo 22/08/2011, 10:32
Avatar de galletica12  
Fecha de Ingreso: mayo-2011
Ubicación: Tekax, Yucatán
Mensajes: 213
Antigüedad: 12 años, 11 meses
Puntos: 8
Respuesta: Error en mi procedimiento

Graxias por tu ayuda aquaventus me sirvio mucho tus aportes, ya esta solucionado.

Saludos...
__________________
Info y Servicios http://www.pc-land.webege.com/ Saludos...:adios:.
  #29 (permalink)  
Antiguo 22/08/2011, 10:33
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Error en mi procedimiento

Excelente! Saludos!.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net

Etiquetas: procedimiento
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:18.