In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Ejecutar Store Procedure SQL Server

Foro de Xailer profesional en español
Responder
Avatar de Usuario
gerencia
Mensajes: 282
Registrado: Sab Jun 20, 2009 6:01 pm

Ejecutar Store Procedure SQL Server

Mensaje por gerencia »

Hola Ignacio,

Estoy intentando ejecutar un store procedure con la TADODataSource, dicho store procedure debe devolver un select despues de ejecutar un INSERT.
La idea es manejar los error devueltos mediante un Select como lo muestra el Store procedure, te agradeceria cualquier ayuda.

Código: Seleccionar todo

USE [prueba_jose]
GO
/****** Object:  StoredProcedure [dbo].[prueba3]    Script Date: 2022/12/09 7:29:28 p. m. ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[prueba3]
AS  
   BEGIN TRY 
    insert into Mytable_jos (codigo,nombre,valor) values ('2036','Pablito','AAA')
END TRY
BEGIN CATCH
   IF @@ERROR<>0
       Select 'Result' = 'Error ' +  ERROR_MESSAGE()
   else
       Select 'Result' = 'ok '

END CATCH;   


cuando lo ejecuto desde xailer, me da el siguiente error

Imagen

Código: Seleccionar todo


ccOnect :="Provider=MSOLEDBSQL;Server=26.169.197.95;Database=prueba_jose;UID=sa;PWD=prueba;"

TEXT into cComand
EXECUTE prueba3
Endtext

 ::oConect_za:cConnect  := ccOnect
 ::oConect_za:lconnected:=.t.
 ::oConect_zas:lDisplayErrors:= .t.

 lStatus:=::oConect_za:Execute(cComand,'EJECUTANDO sp',adCmdText,@oRs)
 
Si lo hago directamente el el SQL MANAGER.
Imagen
Jose David Angulo Urzola
Auditoria y Sistemas Ltda.
Cartagena-Colombia
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9246
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Re: Ejecutar Store Procedure SQL Server

Mensaje por ignacio »

Hola,

Observando que son dos intrucciones las que se realizan en el procedimiento almacenado. Es muy posible que se arregle llamando a:

Código: Seleccionar todo

oAdoDataset:oRecords:oAdo:NextRecordset()
Un saludo
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Avatar de Usuario
gerencia
Mensajes: 282
Registrado: Sab Jun 20, 2009 6:01 pm

Re: Ejecutar Store Procedure SQL Server

Mensaje por gerencia »

Estimado Ignacio,

En qué parte debería hacer este llamado,

Después que regrésese de ejecutar el Store Procedure ?

En espera de tus comentarios,
ignacio escribió: Sab Dic 10, 2022 6:39 pm Hola,

Observando que son dos intrucciones las que se realizan en el procedimiento almacenado. Es muy posible que se arregle llamando a:

Código: Seleccionar todo

oAdoDataset:oRecords:oAdo:NextRecordset()
Un saludo
Jose David Angulo Urzola
Auditoria y Sistemas Ltda.
Cartagena-Colombia
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9246
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Re: Ejecutar Store Procedure SQL Server

Mensaje por ignacio »

Después que regrésese de ejecutar el Store Procedure ?
Así es.

Saludos
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Avatar de Usuario
gerencia
Mensajes: 282
Registrado: Sab Jun 20, 2009 6:01 pm

Re: Ejecutar Store Procedure SQL Server

Mensaje por gerencia »

Hola Ignacio,

Estoy haciéndolo así, tomo el oRs que envío por referencia,

oRs:oRecords:oAdo:NextRecordset()
MsgInfo(oRs:RecCount ))

pero me devuelve cero

Si me puedes orientar te agradecería,

Saludos,
ignacio escribió: Dom Dic 11, 2022 4:34 pm
Después que regrésese de ejecutar el Store Procedure ?
Así es.

Saludos
Jose David Angulo Urzola
Auditoria y Sistemas Ltda.
Cartagena-Colombia
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9246
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Re: Ejecutar Store Procedure SQL Server

Mensaje por ignacio »

Primero arregle el problema que tiene con la SP. Es posible que codigo sea un número?

Saludos
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Avatar de Usuario
gerencia
Mensajes: 282
Registrado: Sab Jun 20, 2009 6:01 pm

Re: Ejecutar Store Procedure SQL Server

Mensaje por gerencia »

Hola Ignacio,

Precisamente lo que estoy simulando en este Store Procedure es un error en el tercer campo del INSERT, debería ir un numérico y le coloque 'AAA'
Lo que pretendo es que cuando ocurra un error devuelva un Query por referencia cuando ejecuto SP, que es la parte que está en BEGIN CATCH.

Pero en otro caso podría ser Store Procedure que hace algunas operaciones en unas tablas y me regrese un Select con los datos a los cuales se le aplicaron algunos
calculos.

En resumen lo que pretendo que además de que se ejecute o realice algo en el Store procedure también me devuelva un select que yo pueda leer en query por envió por referencia.

Mil gracias por tu colaboración.

Saludos

USE [prueba_jose]
GO
/****** Object: StoredProcedure [dbo].[prueba3] Script Date: 2022/12/09 7:29:28 p. m. ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[prueba3]
AS
BEGIN TRY
insert into Mytable_jos (codigo,nombre,valor) values ('2036','Pablito','AAA')
END TRY
BEGIN CATCH
IF @@ERROR<>0
Select 'Result' = 'Error ' + ERROR_MESSAGE()
else
Select 'Result' = 'ok '

END CATCH



ignacio escribió: Lun Dic 12, 2022 6:33 pm Primero arregle el problema que tiene con la SP. Es posible que codigo sea un número?

Saludos
Jose David Angulo Urzola
Auditoria y Sistemas Ltda.
Cartagena-Colombia
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9246
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Re: Ejecutar Store Procedure SQL Server

Mensaje por ignacio »

Hola,

Algo más de información:
https://flylib.com/books/en/3.405.1.37/1/

Me temo que no tengo servidor de SQL donde pueda probarlo. Lo siento.

Saludos
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Responder