Trigger SQL

RPG (3 et 4, free), CL, SQL, etc...
Répondre
monthi
Messages : 66
Enregistré le : mar. 11 sept. 2018, 15:37:02
Localisation : Paris

Trigger SQL

Message par monthi »

Bonjour

est il possible de connaitre le nom du programme qui a effectué l'opération sur la base de donnée comme on peut le faire avec un trigger RPG.

J'ai essayé en utilisant une procédure stockée basée sur la fonction quiappel trouvé sur le forum mais je n'obtient jamais le bon nom de programme.

Y a t'il un autre solution?

Cdlt

cmasse
Site Admin
Messages : 794
Enregistré le : mer. 14 févr. 2007, 18:00:03
Localisation : Nantes
Contact :

Re: Trigger SQL

Message par cmasse »

je ne vois pas bien le contexte ?
Christian Massé (Volubis.fr)

nbonnet
Messages : 57
Enregistré le : mar. 11 sept. 2018, 08:20:13
Localisation : Lyon

Re: Trigger SQL

Message par nbonnet »

Via la journalisation ?
Nathanaël

vazymimil
Messages : 21
Enregistré le : ven. 28 sept. 2018, 17:14:46

Re: Trigger SQL

Message par vazymimil »

Bonjour,

avec STACK_INFO c'est possible, par exemple

Code : Tout sélectionner

select
	program_name
from
	table(QSYS2.STACK_INFO('*')) A
where
	program_name is not null
	and (program_library_name not like 'Q%'
	or program_name in ('QZDASOINIT', 'QSQIMAIN'))
order by ordinal_position desc
limit 1;
Nicolas

monthi
Messages : 66
Enregistré le : mar. 11 sept. 2018, 15:37:02
Localisation : Paris

Re: Trigger SQL

Message par monthi »

bonjour à tous

on utilise les triggers pour historiser les opération sur la base de donnée pour certain fichiers sensibles.
on historise le type d'opération (creation, modification suppression), le programme a l'origine de l'opération, l'utilsateur ainsi que certaines donnée du fichier a pister.

Jusqu'à présent on utilise des triggers rpgle.

je voulais voir comment faire la même chose en trigger SQL mais je n'arrive pas a recuper le nom du programme.

La solution de Vasymimil me retourne le nom du trigger.

Cdlt

vazymimil
Messages : 21
Enregistré le : ven. 28 sept. 2018, 17:14:46

Re: Trigger SQL

Message par vazymimil »

Alors quelque chose comme ça :

Code : Tout sélectionner

select
	program_library_name,
	program_name,
	procedure_name
from
	(
	select
		program_library_name, program_name, procedure_name,
		row_number() over(order by ordinal_position desc) pos
	from
		table(QSYS2.STACK_INFO('*')) A
	where
		program_name is not null
		and (program_library_name not like 'Q%'
		or program_name in ('QZDASOINIT', 'QSQIMAIN', 'QSQXCUTE'))
	)
where
	pos = 3;
Nicolas

monthi
Messages : 66
Enregistré le : mar. 11 sept. 2018, 15:37:02
Localisation : Paris

Re: Trigger SQL

Message par monthi »

Bonsoir Vasymimil

Cela semble fonctionné.

Merci beaucoup.

Cdlt

monthi
Messages : 66
Enregistré le : mar. 11 sept. 2018, 15:37:02
Localisation : Paris

Re: Trigger SQL

Message par monthi »

Bonjour

j'ai rajouter les programme suivant 'QCPGENIO', 'QDZXDBI' car j'avais des plantages lors de l'utilisation de cpyf et de DFU.

Cdlt

Répondre