Modifié par Julien EYMERY le 2015/08/31 11:09

Afficher les derniers auteurs
1 (((
2 = Objectif =
3 )))
4
5 Dans un programme Adelia Visual, récupérer l'utilisateur (user) verrouillant un enregistrement de table en accès SQL iSeries.
6 (((
7 = Principe général =
8 )))
9 (((
10 == Étape 1 ==
11 )))
12
13 Récupérer le (% style="color: rgb(255,102,0);" %)Relative Record Number(%%) (RRN) de l’enregistrement verrouillé par la requête type suivante :
14
15
16 {{code language="none"}}
17 select rrn(NomTable) into :ValeurRrn from NomTable where Condition
18 {{/code}}
19
20
21 Où :
22 * (% style="color: rgb(255,102,0);" %)NomTable(%%) est la table sur laquelle a été détecté un verrouillage (*BLOQUE ~= ‘1’ ou SQLCODE ~= -913)
23 * (% style="color: rgb(255,102,0);" %)ValeurRrn(%%) est une variable définie en NUM_BIN_4
24 * (% style="color: rgb(255,102,0);" %)Condition(%%) est la condition de la requête de mise à jour ou de lecture émise sur NomTable
25
26 (((
27 == Étape 2 ==
28 )))
29
30 Appeler l'API IBM (% style="color: rgb(255,102,0);" %)QDBRRCDL(%%) (avec le format (% style="color: rgb(255,102,0);" %)RRCD0100(%%))
31
32 Avec :
33 * en paramètres d'entrée
34
35 (% style="list-style-type: none;" %)
36 1. 11. Le nom de table NomTable
37 11. Le RRN récupéré à l'étape 1
38
39
40
41 * en paramètres de sortie
42
43 (% style="list-style-type: none;" %)
44 1. 11. Le profil utilisateur (user iSeries)
45 11. Le nom du travail (job iSeries)
46 11. Le n° du travail
47
48
49 (((
50 == Exemple ==
51 )))
52
53
54 {{code title="Traitement général" language="none"}}
55 * Requête SQL, récupération du RRN de l'enregistrement verrouillé
56 EXEC_SQL(select rrn(MATABLE) into :wrrn from MATABLE where IdCode = :WIdCode)
57
58 TRAITER_PROC RTVUSER 'MATABLE' wrrn wprofil wnomtrav wnumtrav
59
60 {{/code}}
61
62
63
64 {{hardis-info icon="false" title="Procédure RTVUSER" type="info" icon="false"}}
65
66 {{/hardis-info}}
67
68
69
70 {{code title="Déclaration" language="none"}}
71 *****************************************************************************
72 * Récupération informations sur le job verrouillant un enregistrement
73 * d'une table avec l'API QDBRRCDL
74 * Paramètres :
75 * - Nom table (E)
76 * - N° relatif d'enregistrement verrouillé (E)
77 * - Profil utilisateur (S)
78 * - Nom job (S)
79 * - N° job (S)
80 *****************************************************************************
81 alpha(10) w_nom_pgm
82 alpha(500) w_rec_var
83 num_bin_4 w_lg_rec_var
84 alpha(8) w_fmt_name
85 alpha(20) w_rcd_id_inf
86 alpha(10) w_mbr_name
87 alpha(30) w_err_code
88 num_bin_4 w_nb_rec_lck_av
89 num_bin_4 w_nb_rec__lck_ret
90 num_bin_4 w_depl_lst_rec_lck
91 num_bin_4 w_size_info
92 alpha(44) t_info_job(11)
93 alpha(44) w_info_job
94 alpha(10) p_job_name
95 alpha(10) p_usr_name
96 alpha(6) p_job_nbr
97 alpha(1) w_lock_status
98 alpha(1) w_lock_state
99 num_bin_4 w_rrn_out
100 num_bin_4 p_rrn_in
101 alpha(44) p_info_job
102 alpha(10) p_nom_table
103 dsi dsrecvar w_nb_rec_lck_av w_nb_rec__lck_ret w_depl_lst_rec_lck w_size_info t_info_job
104 dsi dsinfojob w_info_job p_job_name,1 p_usr_name,11 p_job_nbr,21 w_lock_status,27 w_lock_state,28 w_rrn_out,29
105
106 PARAM p_nom_table p_rrn_in p_usr_name p_job_name p_job_nbr
107 {{/code}}
108
109
110
111 {{code title="Traitement" language="none"}}
112 * Format API de récupération
113 w_fmt_name = 'RRCD0100'
114 * Appel de l'API
115 w_nom_pgm = 'QDBRRCDL'
116 w_lg_rec_var = 500
117 w_rcd_id_inf = p_nom_table // '*LIBL '
118 w_mbr_name = '*FIRST'
119
120 APPELER &w_nom_pgm w_rec_var w_lg_rec_var w_fmt_name w_rcd_id_inf w_mbr_name p_rrn_in w_err_code
121
122 dsrecvar = w_rec_var
123 w_info_job = t_info_job(1)
124 {{/code}}
125