Para poder utilizarlas este tipo de tablas en
GeneXus se debe tener por un lado un DataView en donde la tabla por ejemplo
llamada internamente en GeneXus 'MiTemporal' tenga asociado el nombre externo
'#MiTemporal' esto nos permitirá utilizar el carácter '#' que dentro de GeneXus
no esta permitido. Por otro lado antes de acceder a esta tabla es necesario
ejecutar un comando de 'create' con una sentencia SQL, por ejemplo
SQL CREATE TABLE [#MiTemporal]
...
Esto creara la tabla temporal en la base y luego el
resto de los programas GeneXus accederán a esta tabla sin diferenciarla de
cualquier otra.
Mi nombre es Sebastian Castriotta y este blog es un intento de tips de diferentes lenguajes de programación.
viernes, 19 de agosto de 2011
Genexus - SQL External Stores Procedures
List of external stored procedures : SelecProducIns SelecProducDel
Si son de in o out siempre poner output out
CREATE PROCEDURE [dbo].[SelecProducIns]
@ProdCod int output
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
BEGIN TRANSACTION
INSERT INTO [dbo].[PRODSELEC]([SelProCod])
SELECT [ProdCod] FROM [dbo].[PRODUCTOS] where ProdCod=@ProdCod
COMMIT TRANSACTION
END
CREATE PROCEDURE [dbo].[SelecProducDel]
@ProdCod int output
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
BEGIN TRANSACTION
delete FROM [dbo].[PRODSELEC] where SelProCod=@ProdCod
COMMIT TRANSACTION
END
//////////////////////////////////////////
extprog.ini en la razi de la kb
Si son de in o out siempre poner output out
[SelecProducIns]
ProgramType=StoredProcedure
ProgramName=SelecProducIns
ParmMode=out
ParmType=Number,4,0;
ParmName=ProdCod
[SelecProducDel]
ProgramType=StoredProcedure
ProgramName=SelecProducDel
ParmMode=out
ParmType=Number,4,0;
ParmName=ProdCod
////////////////////////////////////////
CALL('SelecProducIns', &ProdCod)
CALL('SelecProducDel', &ProdCod)
Si son de in o out siempre poner output out
CREATE PROCEDURE [dbo].[SelecProducIns]
@ProdCod int output
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
BEGIN TRANSACTION
INSERT INTO [dbo].[PRODSELEC]([SelProCod])
SELECT [ProdCod] FROM [dbo].[PRODUCTOS] where ProdCod=@ProdCod
COMMIT TRANSACTION
END
CREATE PROCEDURE [dbo].[SelecProducDel]
@ProdCod int output
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
BEGIN TRANSACTION
delete FROM [dbo].[PRODSELEC] where SelProCod=@ProdCod
COMMIT TRANSACTION
END
//////////////////////////////////////////
extprog.ini en la razi de la kb
Si son de in o out siempre poner output out
[SelecProducIns]
ProgramType=StoredProcedure
ProgramName=SelecProducIns
ParmMode=out
ParmType=Number,4,0;
ParmName=ProdCod
[SelecProducDel]
ProgramType=StoredProcedure
ProgramName=SelecProducDel
ParmMode=out
ParmType=Number,4,0;
ParmName=ProdCod
////////////////////////////////////////
CALL('SelecProducIns', &ProdCod)
CALL('SelecProducDel', &ProdCod)
Suscribirse a:
Entradas (Atom)