Una un poco rara...stored Procedure desde SQL y ADP

13/11/2007 - 12:38 por Pepe | Informe spam
Quizas el grupo no es este exactamente..

tengo un stored procedure en eun SQL 2000 SP4 que funciona a la perfeccion.
Lo lanzo cada dia mediante un job y cumple su cometido a la perfeccion.

Paralelamente tengo un ADP de access que esta conectado con la base de
datos.. y queria poder incluir una opcion o manera para que el usuario de la
aplicacion pueda lanzar la stored sin esperar a que se ejecute la tarea
nocturna. He probado mediante el siguiente codigo VBA ( tengo referenciada
el Microsoft Active DataX Objects 2.8 library.. que creo que es la ultima ).

On Error Resume Next
Dim con As Connection

Set con = CurrentProject.Connection

On Error GoTo Err_cmdTraspasaDatos_Click

Dim Cmd As ADODB.Command
Set Cmd = New ADODB.Command
With Cmd
.ActiveConnection = CurrentProject.Connection
.CommandType = adCmdStoredProc
.CommandText = "TRASPASO_DATOS"
.Execute
End With

MsgBox ("Importacion finalizada, compruebe los mensajes de
importacion")
Set Cmd = Nothing

Exit Sub


Exit_cmdTraspasaDatos_Click:
Exit Sub

Err_cmdTraspasaDatos_Click:
MsgBox Err.Description
Resume Exit_cmdTraspasaDatos_Click


Pero me encuentro que se ejecuta la Stored pero se para en un punto y no
sigue ejecutando el resto ed codigo ( la stored tiene varias transacciones
para los diferentes procesos que realiza ).

Por otro lado, mediante el ADP, se puede ir a la categoria de Stored
procedures y seleccionar la Stored y lanzarla manualmente ( el usuario tiene
privilegio EXEC por lo que no es un tema de seguridad ).. y sucede lo
mismo se lanza.. ejecuta una parte... y luego se para en un punto..
dejando codigo sin ejecutar.

Pense que seria problema de diseño de codigo de la stored pero aparantemente
todo es correcto y mediante el analizador de consultas y un Job del SQL la
procedure se ejecuta correctamente y cumple perfectamente su cometido.
Alguien sabe porque desde Access reacciona asi??
 

Leer las respuestas

#1 Gux (MVP)
13/11/2007 - 21:57 | Informe spam
Si lo que usted necesita es que el usuario pueda ejecutar el procedimiento mi
recomendación es que simplemente haga un script Windows que ejecute el
procedimiento (usando OSQL.EXE o SQLCMD.EXE).

Respecto a las dudas de Access, posiblemente en los foros de Access puedan
reomendarle alguna solución.

Gustavo Larriera, Microsoft MVP
https://mvp.support.microsoft.com/profile/gux
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"Pepe" wrote:

Quizas el grupo no es este exactamente..

tengo un stored procedure en eun SQL 2000 SP4 que funciona a la perfeccion.
Lo lanzo cada dia mediante un job y cumple su cometido a la perfeccion.

Paralelamente tengo un ADP de access que esta conectado con la base de
datos.. y queria poder incluir una opcion o manera para que el usuario de la
aplicacion pueda lanzar la stored sin esperar a que se ejecute la tarea
nocturna. He probado mediante el siguiente codigo VBA ( tengo referenciada
el Microsoft Active DataX Objects 2.8 library.. que creo que es la ultima ).

On Error Resume Next
Dim con As Connection

Set con = CurrentProject.Connection

On Error GoTo Err_cmdTraspasaDatos_Click

Dim Cmd As ADODB.Command
Set Cmd = New ADODB.Command
With Cmd
.ActiveConnection = CurrentProject.Connection
.CommandType = adCmdStoredProc
.CommandText = "TRASPASO_DATOS"
.Execute
End With

MsgBox ("Importacion finalizada, compruebe los mensajes de
importacion")
Set Cmd = Nothing

Exit Sub


Exit_cmdTraspasaDatos_Click:
Exit Sub

Err_cmdTraspasaDatos_Click:
MsgBox Err.Description
Resume Exit_cmdTraspasaDatos_Click


Pero me encuentro que se ejecuta la Stored pero se para en un punto y no
sigue ejecutando el resto ed codigo ( la stored tiene varias transacciones
para los diferentes procesos que realiza ).

Por otro lado, mediante el ADP, se puede ir a la categoria de Stored
procedures y seleccionar la Stored y lanzarla manualmente ( el usuario tiene
privilegio EXEC por lo que no es un tema de seguridad ).. y sucede lo
mismo se lanza.. ejecuta una parte... y luego se para en un punto..
dejando codigo sin ejecutar.

Pense que seria problema de diseño de codigo de la stored pero aparantemente
todo es correcto y mediante el analizador de consultas y un Job del SQL la
procedure se ejecuta correctamente y cumple perfectamente su cometido.
Alguien sabe porque desde Access reacciona asi??





Preguntas similares