Página 1 de 1

Ejecutar Store Procedure SQL Server

Publicado: Sab Dic 10, 2022 1:45 am
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

Re: Ejecutar Store Procedure SQL Server

Publicado: Sab Dic 10, 2022 6:39 pm
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

Re: Ejecutar Store Procedure SQL Server

Publicado: Dom Dic 11, 2022 3:56 pm
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

Re: Ejecutar Store Procedure SQL Server

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

Saludos

Re: Ejecutar Store Procedure SQL Server

Publicado: Lun Dic 12, 2022 3:54 pm
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

Re: Ejecutar Store Procedure SQL Server

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

Saludos

Re: Ejecutar Store Procedure SQL Server

Publicado: Mar Dic 13, 2022 12:27 am
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

Re: Ejecutar Store Procedure SQL Server

Publicado: Mar Dic 13, 2022 1:46 pm
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