Visual Basic.NET - Ayuda con Stored procedure

   
Vista:

Ayuda con Stored procedure

Publicado por Nicolas (35 intervenciones) el 17/07/2009 22:01:59
Hola gente, mi problema es que cuando llamo al storde procedure desde Visual Studio 2005 no lo encuentra.
El nombre esta bien, lo que me llama la atención es donde se guarda el stored procedure cuando lo creo, se guarda en una carpeta llamada "Proyect" (C:Documents and SettingsNicoMis documentosSQL Server Management Studio ExpressProjects)

Utilizo Sql Server Management Studio Express

Este es el código de VS 20005

Private Sub btnParametros_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnParametros.Click
'obtiene cadena de conección
Dim ConnectionString As String = My.Settings.NorthwindCnnString
Dim oCnn As SqlConnection

'Crea la Conexión
oCnn = New SqlConnection(ConnectionString)
oCnn.Open()

'Crear el Comando
Dim oCmd As New SqlCommand
oCmd.Connection = oCnn
oCmd.CommandType = CommandType.StoredProcedure
oCmd.CommandText = "AddNewCustomer"

'Agrego los valores para los parametros
oCmd.Parameters.AddWithValue("@CustomerId", "DEMO1")
oCmd.Parameters.AddWithValue("@CompanyName", "Compañia de ejemplo")
oCmd.Parameters.AddWithValue("@Contactname", "Contacto de ejemplo")

'Ejecución del comando y retorno del los regisros afectados
Dim Registros As Integer
Registros = oCmd.ExecuteNonQuery

'Cerramos la conexión
oCnn.Close()

'Mostramos la cantidad de registros afectados
MessageBox.Show(Registros & " registros actualizados")
End Sub
End Class

Y este es el código del Stored Precodure

GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE AddNewCustomer
@CustomerId varchar(5), @CompanyName varchar(40)
@ContactName varchar(30)
AS INSERT INTO Customers(CustomerId, CompanyName, ContactName)
VALUES (@CustomerId, @CompanyName, @ContactName)sname, @p2>
END
GO

Espero me puedan ayudar...

Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de roger

RE:Ayuda con Stored procedure

Publicado por roger (186 intervenciones) el 18/07/2009 00:57:59
no importa en que ruta se encuentra el archivo con el codigo del store procedure, lo que importa es que este exista en la base de datos, es decir que ya hayas ejecutado ese script que muestras en la base de datos. Te aparece algun mensaje de error??, has probado metiendo todo en un try catch para verificar el error
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con Stored procedure

Publicado por Nicolas (35 intervenciones) el 18/07/2009 02:12:00
Cuando ejecuto el stored desde la base dato me da estos errores

Mens 102, Nivel 15, Estado 1, Procedimiento AddNewCustomer, Línea 3
Sintaxis incorrecta cerca de '@ContactName'.
Mens 137, Nivel 15, Estado 2, Procedimiento AddNewCustomer, Línea 5
Debe declarar la variable escalar "@CompanyName".

Pero cuando lo llamo desde VS 2005 lo unico que me dice es un mensaje con que no se encontro el stored procedure.

Yo cuando estoy en Sql Server Management, cuando expando la base de dato veo un opcion que dice "Programación" la expando y tiene dos opciones una que dice "Prcedimientos almacenados" pero en esta no veo mi procedimiento y si expando la otra que dice "procedimientos almacenados del Sistema" tampoco lo veo, para abrir el stored procedure tengo que ir a "archivo" luego "Abrir" y luego "archivo" y ahi me abre un ventana para elegir el stored procedure.

La verdad no se que puede ser.

Ya encerre el código con un try catch y nada, solo el mismo mensaje que no encuentra el Stored Procedure

Nico
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de roger

RE:Ayuda con Stored procedure

Publicado por roger (186 intervenciones) el 19/07/2009 03:30:07
Hasta que no te deje de salir error en sql server, al crear el procedure, este no se vera en la lista de procedimientos, es decir, este no se crea hasta que corrijas los errores, por eso en VS te dice que no existe

tu procedimiento deberia quedar asi

CREATE PROCEDURE AddNewCustomer
@CustomerId varchar(5), @CompanyName varchar(40) ,
@ContactName varchar(30)

AS
BEGIN
INSERT INTO Customers(CustomerId, CompanyName, ContactName)
VALUES (@CustomerId, @CompanyName, @ContactName)
END

te faltaba la coma al terminar de declarar el parametro @CompanyName
Espero que te sirva
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con Stored procedure

Publicado por Cesar (4 intervenciones) el 20/07/2009 20:29:58
Nicolas:

Solo como observación. Lo que debemos tener claro es que tu stored procedure está almacenado en la instancia de SQL Server y no en tu archivo, ya que el archivo solamente es un script para su creación en la base de datos. Por otro lado el código desde donde lo estás llamando está en la plataforma de Front End y por eso todo el código, tanto de conexión a la instancia como el pasado de parámetros hacia tu stored procedure. En pocas palabras tu stored procedure es la capa de datos y tu lo vas a ejecutar desde la capa de presentación.

Saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con Stored procedure

Publicado por Nicolas (35 intervenciones) el 21/07/2009 21:41:53
Cesar, estos conceptos los tenía claro pero vale la observación.

Con respecto al problema ya lo solucione, me parece que era que le faltaba "Begin" despues de AS, (aún no lo puedo ver en el arbol al procedimiento pero funciona igual)

Ahora una pregunta porque va "Begin" en algunos casos y en otros no y porque va CREATE y en otros casos ALTER.

Desde ya muchas gracias por su ayuda, me fue de muchisima utilidad.

Nico
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de roger

RE:Ayuda con Stored procedure

Publicado por roger (186 intervenciones) el 22/07/2009 13:19:58
no es necesario el begin, lo que pasa es que al final pusiste END, y ese si debe tener su respectivo BEGIN.
CREATE debe ir cuando estas creando los objetos, una vez existan en la base de datos, no los puedes volver a crear con create(a menos que los borres),los debes modificar con ALTER
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con Stored procedure

Publicado por Nicolás (35 intervenciones) el 22/07/2009 20:42:32
Roger, nuevamente gracias por tu ayuda.

Un abrazo
Nico.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar