Error muy extraño

27/07/2004 - 16:25 por Alberto | Informe spam
Tengo un procedimiento almacenado que inserta pedidos en la tabla Orders de
Northwind que es el siguiente:

CREATE PROCEDURE NuevoPedido
(
@CustomerID nchar(5),
@EmployeeID int,
@OrderDate DateTime,
@RequiredDate DateTime,
@ShipVia int,
@Freight money,
@ShipName nvarchar(40),
@ShipAddress nvarchar(60),
@ShipCity nvarchar(15),
@ShipRegion nvarchar(15),
@ShipPostalCode nvarchar(10),
@ShipCountry nvarchar(15),
@OrderID int OUTPUT
)
as
INSERT INTO Orders
(CustomerID, EmployeeID, OrderDate, RequiredDate, ShipVia, Freight,
ShipName, ShipAddress, ShipCity, ShipRegion, ShipPostalCode, ShipCountry)
VALUES
(@CustomerID, @EmployeeID, @OrderDate, @RequiredDate, @ShipVia, @Freight,
@ShipName, @ShipAddress, @ShipCity, @ShipRegion, @ShipPostalCode,
@ShipCountry)

SELECT @OrderID = @@Identity

Al comprobar la sintaxis me dice que todo es correcto pero al invocarlo
desde Visual Studio .Net me dice "Sintaxis incorrecta cerca de NuevoPedido".

¿Me podeis decir dónde está el error? Gracias.

Preguntas similare

Leer las respuestas

#6 Alberto
27/07/2004 - 17:39 | Informe spam
Datos.parametros.Clear();

Datos.parametros.Add("@CustomerID", SqlDbType.NChar, 5,

ds.Tables["Clientes"].Rows[cboClientes.SelectedIndex-1][0].ToString());

Datos.parametros.Add("@EmployeeID", SqlDbType.Int,

ds.Tables["Empleados"].Rows[cboEmpleados.SelectedIndex-1][0].ToString());

Datos.parametros.Add("@OrderDate", SqlDbType.DateTime,

dtpFechaTramitacion.Value);

Datos.parametros.Add("@RequiredDate", SqlDbType.DateTime,

dtpFechaLimite.Value);

Datos.parametros.Add("@ShipVia", SqlDbType.Int,

Convert.ToInt32(ds.Tables["Transportistas"].Rows[cboTransportistas.SelectedI
ndex-1][0]));

Datos.parametros.Add("@Freight", SqlDbType.Money, txtImporte.Text);

Datos.parametros.Add("@ShipName", SqlDbType.NVarChar, 40,

txtAtencion.Text);

Datos.parametros.Add("@ShipAddress", SqlDbType.NVarChar, 60,

txtDireccion.Text);

Datos.parametros.Add("@ShipCity", SqlDbType.NVarChar, 15,

txtCiudad.Text);

Datos.parametros.Add("@ShipRegion", SqlDbType.NVarChar, 15,

txtRegion.Text);

Datos.parametros.Add("@ShipPostalCode", SqlDbType.NVarChar, 10,

txtCP.Text);

Datos.parametros.Add("@ShipCountry", SqlDbType.NVarChar, 15,

txtPais.Text);

Datos.parametros.Add("@OrderId", SqlDbType.Int, 4,

System.Data.ParameterDirection.Output);

try

{

Datos.EjecutarAccion("NuevoPedido");

MessageBox.Show("El pedido ha sido grabado.", "Aviso",

MessageBoxButtons.OK, MessageBoxIcon.Information);

}

catch (SqlException err)

{

MessageBox.Show("Ha ocurrido un error" + Environment.NewLine + err.Message,

"Error", MessageBoxButtons.OK, MessageBoxIcon.Error);

}

Datos es una clase que construí para acceder a los datos.
Saludos.

"Gustavo Larriera [MVP SQL]" escribió en el
mensaje news:ePuUI4%
Puedes mostrarnos el código VB.NET que usas para invocar al stored
procedure?

Gustavo Larriera
Uruguay LatAm
http://sqljunkies.com/weblog/gux/
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.
"Alberto" wrote in message
news:%231F%23lV%
> Tengo un procedimiento almacenado que inserta pedidos en la tabla Orders
de
> Northwind que es el siguiente:
>
> CREATE PROCEDURE NuevoPedido
> (
> @CustomerID nchar(5),
> @EmployeeID int,
> @OrderDate DateTime,
> @RequiredDate DateTime,
> @ShipVia int,
> @Freight money,
> @ShipName nvarchar(40),
> @ShipAddress nvarchar(60),
> @ShipCity nvarchar(15),
> @ShipRegion nvarchar(15),
> @ShipPostalCode nvarchar(10),
> @ShipCountry nvarchar(15),
> @OrderID int OUTPUT
> )
> as
> INSERT INTO Orders
> (CustomerID, EmployeeID, OrderDate, RequiredDate, ShipVia, Freight,
> ShipName, ShipAddress, ShipCity, ShipRegion, ShipPostalCode,
ShipCountry)
> VALUES
> (@CustomerID, @EmployeeID, @OrderDate, @RequiredDate, @ShipVia,


@Freight,
> @ShipName, @ShipAddress, @ShipCity, @ShipRegion, @ShipPostalCode,
> @ShipCountry)
>
> SELECT @OrderID = @@Identity
>
> Al comprobar la sintaxis me dice que todo es correcto pero al invocarlo
> desde Visual Studio .Net me dice "Sintaxis incorrecta cerca de
NuevoPedido".
>
> ¿Me podeis decir dónde está el error? Gracias.
>
>


Respuesta Responder a este mensaje
#7 Gustavo Larriera [MVP SQL]
27/07/2004 - 20:40 | Informe spam
He ejecutado el stored procedure desde el Query Analyzer sin problemas.
Debes tener algún problema en la programación o en los datos que pasas de
parámetros.

Así funciona OK:

declare @numero int
exec NuevoPedido 'ALFKI', 1, '20030303', '20030303', 1, 11, 'name', 'addr',
'city', 'reg', 'zip', 'ctry', @numero OUTPUT


Gustavo Larriera
Uruguay LatAm
http://sqljunkies.com/weblog/gux/
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.
"Alberto" wrote in message
news:Oe2YR$%
Datos.parametros.Clear();

Datos.parametros.Add("@CustomerID", SqlDbType.NChar, 5,

ds.Tables["Clientes"].Rows[cboClientes.SelectedIndex-1][0].ToString());

Datos.parametros.Add("@EmployeeID", SqlDbType.Int,

ds.Tables["Empleados"].Rows[cboEmpleados.SelectedIndex-1][0].ToString());

Datos.parametros.Add("@OrderDate", SqlDbType.DateTime,

dtpFechaTramitacion.Value);

Datos.parametros.Add("@RequiredDate", SqlDbType.DateTime,

dtpFechaLimite.Value);

Datos.parametros.Add("@ShipVia", SqlDbType.Int,




Convert.ToInt32(ds.Tables["Transportistas"].Rows[cboTransportistas.SelectedI
ndex-1][0]));

Datos.parametros.Add("@Freight", SqlDbType.Money, txtImporte.Text);

Datos.parametros.Add("@ShipName", SqlDbType.NVarChar, 40,

txtAtencion.Text);

Datos.parametros.Add("@ShipAddress", SqlDbType.NVarChar, 60,

txtDireccion.Text);

Datos.parametros.Add("@ShipCity", SqlDbType.NVarChar, 15,

txtCiudad.Text);

Datos.parametros.Add("@ShipRegion", SqlDbType.NVarChar, 15,

txtRegion.Text);

Datos.parametros.Add("@ShipPostalCode", SqlDbType.NVarChar, 10,

txtCP.Text);

Datos.parametros.Add("@ShipCountry", SqlDbType.NVarChar, 15,

txtPais.Text);

Datos.parametros.Add("@OrderId", SqlDbType.Int, 4,

System.Data.ParameterDirection.Output);

try

{

Datos.EjecutarAccion("NuevoPedido");

MessageBox.Show("El pedido ha sido grabado.", "Aviso",

MessageBoxButtons.OK, MessageBoxIcon.Information);

}

catch (SqlException err)

{

MessageBox.Show("Ha ocurrido un error" + Environment.NewLine +


err.Message,

"Error", MessageBoxButtons.OK, MessageBoxIcon.Error);

}

Datos es una clase que construí para acceder a los datos.
Saludos.

"Gustavo Larriera [MVP SQL]" escribió en el
mensaje news:ePuUI4%
> Puedes mostrarnos el código VB.NET que usas para invocar al stored
> procedure?
>
> Gustavo Larriera
> Uruguay LatAm
> http://sqljunkies.com/weblog/gux/
> 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.
> "Alberto" wrote in message
> news:%231F%23lV%
> > Tengo un procedimiento almacenado que inserta pedidos en la tabla


Orders
> de
> > Northwind que es el siguiente:
> >
> > CREATE PROCEDURE NuevoPedido
> > (
> > @CustomerID nchar(5),
> > @EmployeeID int,
> > @OrderDate DateTime,
> > @RequiredDate DateTime,
> > @ShipVia int,
> > @Freight money,
> > @ShipName nvarchar(40),
> > @ShipAddress nvarchar(60),
> > @ShipCity nvarchar(15),
> > @ShipRegion nvarchar(15),
> > @ShipPostalCode nvarchar(10),
> > @ShipCountry nvarchar(15),
> > @OrderID int OUTPUT
> > )
> > as
> > INSERT INTO Orders
> > (CustomerID, EmployeeID, OrderDate, RequiredDate, ShipVia, Freight,
> > ShipName, ShipAddress, ShipCity, ShipRegion, ShipPostalCode,
> ShipCountry)
> > VALUES
> > (@CustomerID, @EmployeeID, @OrderDate, @RequiredDate, @ShipVia,
@Freight,
> > @ShipName, @ShipAddress, @ShipCity, @ShipRegion, @ShipPostalCode,
> > @ShipCountry)
> >
> > SELECT @OrderID = @@Identity
> >
> > Al comprobar la sintaxis me dice que todo es correcto pero al


invocarlo
> > desde Visual Studio .Net me dice "Sintaxis incorrecta cerca de
> NuevoPedido".
> >
> > ¿Me podeis decir dónde está el error? Gracias.
> >
> >
>
>


Respuesta Responder a este mensaje
#8 Manuel Etcheto
27/07/2004 - 22:39 | Informe spam
Bueno, si usas sa y en blanco, tienes un problema mayor...

Ahora en el caso de Stored Procedure, seguramente en .Net no estás
construyendo el command como corresponde o la carga de parámetros no es
correcta.
Pasa el código del SqlCommand y lo vemos
Suerte
Manuel



Alberto escribió en el mensaje de noticias
eS5C8s#
El único propietario que hay es el sa con contraseña en blanco.
Saludos.

"Manuel Etcheto" escribió en


el
mensaje news:OYNMXk%
> ¿el propietario quién es?
> ¿el usuario de la conexión .net?
> Revisa eso e invocalo con nombre completo (propietario.nombreprocedure)
> Suerte
> Manuel
>
>
> Alberto escribió en el mensaje de noticias
> #1F#lV#
> > Tengo un procedimiento almacenado que inserta pedidos en la tabla


Orders
> de
> > Northwind que es el siguiente:
> >
> > CREATE PROCEDURE NuevoPedido
> > (
> > @CustomerID nchar(5),
> > @EmployeeID int,
> > @OrderDate DateTime,
> > @RequiredDate DateTime,
> > @ShipVia int,
> > @Freight money,
> > @ShipName nvarchar(40),
> > @ShipAddress nvarchar(60),
> > @ShipCity nvarchar(15),
> > @ShipRegion nvarchar(15),
> > @ShipPostalCode nvarchar(10),
> > @ShipCountry nvarchar(15),
> > @OrderID int OUTPUT
> > )
> > as
> > INSERT INTO Orders
> > (CustomerID, EmployeeID, OrderDate, RequiredDate, ShipVia, Freight,
> > ShipName, ShipAddress, ShipCity, ShipRegion, ShipPostalCode,
> ShipCountry)
> > VALUES
> > (@CustomerID, @EmployeeID, @OrderDate, @RequiredDate, @ShipVia,
@Freight,
> > @ShipName, @ShipAddress, @ShipCity, @ShipRegion, @ShipPostalCode,
> > @ShipCountry)
> >
> > SELECT @OrderID = @@Identity
> >
> > Al comprobar la sintaxis me dice que todo es correcto pero al


invocarlo
> > desde Visual Studio .Net me dice "Sintaxis incorrecta cerca de
> NuevoPedido".
> >
> > ¿Me podeis decir dónde está el error? Gracias.
> >
> >
>
>


Respuesta Responder a este mensaje
#9 FERNANDO
27/07/2004 - 23:08 | Informe spam
CUANDO DECLARAS LOS PARAMETROS PODES SACARLES LOS
PARENTESIS QUE ANDA IGUAL.DESPUES PARECE QUE ESTA BIEN
TENDRIAS QUE MANDAR EL SCRIPT COMPLETO A VER SI SE TE
ESCAPO ALGO .



Tengo un procedimiento almacenado que inserta pedidos en


la tabla Orders de
Northwind que es el siguiente:

CREATE PROCEDURE NuevoPedido
(
@CustomerID nchar(5),
@EmployeeID int,
@OrderDate DateTime,
@RequiredDate DateTime,
@ShipVia int,
@Freight money,
@ShipName nvarchar(40),
@ShipAddress nvarchar(60),
@ShipCity nvarchar(15),
@ShipRegion nvarchar(15),
@ShipPostalCode nvarchar(10),
@ShipCountry nvarchar(15),
@OrderID int OUTPUT
)
as
INSERT INTO Orders
(CustomerID, EmployeeID, OrderDate, RequiredDate,


ShipVia, Freight,
ShipName, ShipAddress, ShipCity, ShipRegion,


ShipPostalCode, ShipCountry)
VALUES
(@CustomerID, @EmployeeID, @OrderDate, @RequiredDate,


@ShipVia, @Freight,
@ShipName, @ShipAddress, @ShipCity, @ShipRegion,


@ShipPostalCode,
@ShipCountry)

SELECT @OrderID = @@Identity

Al comprobar la sintaxis me dice que todo es correcto


pero al invocarlo
desde Visual Studio .Net me dice "Sintaxis incorrecta


cerca de NuevoPedido".

¿Me podeis decir dónde está el error? Gracias.


.

Respuesta Responder a este mensaje
#10 Alberto
28/07/2004 - 16:18 | Informe spam
Gracias a todos. El problema que tenía es que la clase que construí en C# no
estaba teniendo en cuenta que el tipo de comando era un Store procedure
aunque se lo estaba indicando a través de una propiedad.

"Alberto" escribió en el mensaje
news:%231F%23lV%
Tengo un procedimiento almacenado que inserta pedidos en la tabla Orders


de
Northwind que es el siguiente:

CREATE PROCEDURE NuevoPedido
(
@CustomerID nchar(5),
@EmployeeID int,
@OrderDate DateTime,
@RequiredDate DateTime,
@ShipVia int,
@Freight money,
@ShipName nvarchar(40),
@ShipAddress nvarchar(60),
@ShipCity nvarchar(15),
@ShipRegion nvarchar(15),
@ShipPostalCode nvarchar(10),
@ShipCountry nvarchar(15),
@OrderID int OUTPUT
)
as
INSERT INTO Orders
(CustomerID, EmployeeID, OrderDate, RequiredDate, ShipVia, Freight,
ShipName, ShipAddress, ShipCity, ShipRegion, ShipPostalCode,


ShipCountry)
VALUES
(@CustomerID, @EmployeeID, @OrderDate, @RequiredDate, @ShipVia, @Freight,
@ShipName, @ShipAddress, @ShipCity, @ShipRegion, @ShipPostalCode,
@ShipCountry)

SELECT @OrderID = @@Identity

Al comprobar la sintaxis me dice que todo es correcto pero al invocarlo
desde Visual Studio .Net me dice "Sintaxis incorrecta cerca de


NuevoPedido".

¿Me podeis decir dónde está el error? Gracias.


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