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

Ayuda con Stored Procedure

Estas en el tema de Ayuda con Stored Procedure en el foro de SQL Server en Foros del Web. Cree un stored procedure llamado "spSelOrdenAsignar" mi usuario es etorres, lo comento por que todo lo demas (tablas, stored procedures, vistas, etc) fue hecho por ...
  #1 (permalink)  
Antiguo 17/01/2006, 15:09
 
Fecha de Ingreso: enero-2006
Mensajes: 169
Antigüedad: 18 años, 3 meses
Puntos: 0
Pregunta Ayuda con Stored Procedure

Cree un stored procedure llamado "spSelOrdenAsignar" mi usuario es etorres, lo comento por que todo lo demas (tablas, stored procedures, vistas, etc) fue hecho por otro usuario el cual se logeaba con el usuario dbo, el problema es el siguiente, el stored procedure que cree yo (spSelOrdenAsignar) al invocarlo desde el codigo asp de la sig. manera:

strsql = "spSelOrdenAsignar'" & usu_borrar & "'"
Set ordenes_tecnico = Conn.execute(strsql)

me tira este error:

Tipo de error:
Microsoft OLE DB Provider for SQL Server (0x80040E14)
Could not find stored procedure 'spSelOrdenAsignar'.
/borrar2.asp, línea 21


Tipo de explorador:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; InfoPath.1)

Página:
POST 39 bytes to /borrar2.asp

Datos de POST:
RADIO1=1&asignar=553&A1=Asignar+Ordenes

El stored procedure SI EXISTE, ahora lo que hice para probar fue modificar un stored procedure hecho por dbo, el cual se llama "spSelOrden", las modificaciones que le hice fue poner entre comentarios lo que tenia (menos la declaracion del stored procedure) y agregarle el codigo del stored procedure que yo cree (spSelOrdenAsignar), con esto lo vuelvo a llamar desde el codigo asp asi:

strsql = "spSelOrden'" & usu_borrar & "'"
Set ordenes_tecnico = Conn.execute(strsql)

y funciona PERFECTAMENTE. En conclusion la unica diferencia es que un stotred procedure lo cree yo (etorres) y el otro ya estaba creado con el user dbo, me han dicho que es de permisos, pero no le doy al clavo, espero me puedan ayudar.

Gracias de antemano
  #2 (permalink)  
Antiguo 17/01/2006, 17:50
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Tienes conflictos con el dueño del sp vs el usuario que corre la aplicacion.

Tienes 2 maneras de corregirlo, una es indicando el dueño al llamarlo: [b]EXEC dueño.spSelOrdenAsignar[b/]

O bien, lo más recomendado: utilizar un solo dueño para todos los objetos. En este caso utiliza EXEC sp_changeobjectowner 'dueño.spSelOrdenAsignar', 'dbo' para hacer que pertenezca a dbo (lo ideal)

En lo personal utilzo siempre ambas opciones juntas: EXEC dbo.misp
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #3 (permalink)  
Antiguo 17/01/2006, 18:07
 
Fecha de Ingreso: enero-2006
Mensajes: 169
Antigüedad: 18 años, 3 meses
Puntos: 0
Lo intente pero me marca error

Antes que nada de verdad gracias por la ayuda, intente lo que me dijiste como solucion pero me marca error, tal ves estoy escribiendo algo mal, podrias ser mas explicito de como quedaria para el siguiente stored procedure?

CREATE procedure spSelOrdenAsignar

por que yo lo intente asi:

CREATE procedure dbo.spSelOrdenAsignar y asi
CREATE procedure EXEC dbo.spSelOrdenAsignar

tal ves es una cosa basica, pero a penas me inicio en esto, sorry.
  #4 (permalink)  
Antiguo 18/01/2006, 16:00
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Para crearlo es asi:
CREATE PROCEDURE dbo.spSelOrdenAsignar ...

Y para ejecutarlo asi:
EXEC dbo.spSelOrdenAsignar ...
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #5 (permalink)  
Antiguo 19/01/2006, 20:12
Avatar de mateamargo  
Fecha de Ingreso: enero-2006
Mensajes: 13
Antigüedad: 18 años, 3 meses
Puntos: 0
El problema se da con el tipo de autenticación que tengas contra el servidor.

Lo más seguro es que la otra persona use el usuario SA y vos uses "Windows Authentication".

Si usás WA los SP, tablas, etc se crean con tu usuario (a no ser que explícitamente le indiques lo contrario: create proc dbo.proceso).

Si querés mantener compatibilidad con la otra persona deberían ambos crear los objetos indicando el usuario DBO.

Saludos.
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 02:42.