Bonjour,

J'ai récupéré une application en fortran et je dois la débugger.
Cette application accédait à une base oracle 8i, que j'ai upgradé en 9i sans problème.
J'ai maintenant quelques problèmes avec l'application en fortran.
J'utilise Digital Visual Fortran pour débugger et il me renvoi l'erreur dans cette fonction :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
 
SUBROUTINE Aff_Article_BD ( dlg, id, callbacktype ,Page_Voulue)
	use dfwin
	use dflogm
	use Gest_Onglets_BD
 
	include 'clud_eaa.inc'
	include 'clud_global.inc'
	include 'clud_bd.inc'
	include 'resource.fd'
 
	external Formate_Donnee
 
	type         (dialog) dlg,dlg2
	integer      id, callbacktype,i,Indice,Nb_Lignes,return2,retint2
	integer      Page_Voulue
	logical*4	   retlog
	character*20 Nom_Article
	character*15 Valeur_lue  ! 9 en 15 Modif 2000
 
    ! supress compiler warnings for unreferenced arguments
	integer local_id, local_callbacktype
	local_id = id
	local_callbacktype = callbacktype
 
!   --------------  Référence de l'article  ----------------
 
	retlog = DlgSet ( dlg, ED_Num_Serie,BD_VREF(ARTICLE_CHOISI,1) )
 
!   ----------  Lecture de l'onglet en cours --------------
 
    retlog = DlgGet ( dlg, TC_BD, iTab, dlg_state)
    retlog = DlgGet ( dlg, TC_BD, idTab, iTab)
 
    PAGE_CONSULTATION = Page_Voulue
 
	select case (idTab)
 
	case (DL_Consult_RBD)
!	------- 10 premieres ref de l'article  ----------------
 
		write (Valeur_lue, 997) int(BD_NBREF(ARTICLE_CHOISI))
		retlog = DlgSet ( dlg_tab1, TX_Total,  adjustl(Valeur_lue) )
 
		if (BD_NBREF(ARTICLE_CHOISI) .LT. PAGE_CONSULTATION*10) then
		    Nb_Lignes = BD_NBREF(ARTICLE_CHOISI) - ((PAGE_CONSULTATION-1)*10)
		else
			NB_Lignes=10	
		endif
 
		retlog = DlgSet ( dlg_tab1, LB_Numero, NB_Lignes, DLG_NUMITEMS )
		retlog = DlgSet ( dlg_tab1, LB_Nom, NB_Lignes, DLG_NUMITEMS )
		retlog = DlgSet ( dlg_tab1, LB_Reference, NB_Lignes, DLG_NUMITEMS )
		retlog = DlgSet ( dlg_tab1, LB_Desc, NB_Lignes, DLG_NUMITEMS )
 
		write (Valeur_lue, 997) PAGE_CONSULTATION
		retlog = DlgSet ( dlg_tab1, TX_Num_Page,  adjustl(Valeur_lue) )
 
		do i=1, Nb_Lignes        
	        Indice = (PAGE_CONSULTATION-1)*10 + i
			write (Valeur_lue, 997) Indice
			retlog = DlgSet ( dlg_tab1, LB_Numero, adjustl(Valeur_lue) , i )
			retlog = DlgSet ( dlg_tab1, LB_Reference, BD_VREF(ARTICLE_CHOISI,Indice), i)
			retlog = DlgSet ( dlg_tab1, LB_Desc, BD_DREF(ARTICLE_CHOISI,Indice), i )
		enddo
 
 
	case (DL_Consult_DBD)
!	------- 10 premieres données de l'article  ----------------
 
		write (Valeur_lue, 997) int(BD_NBDON(ARTICLE_CHOISI))
		retlog = DlgSet ( dlg_tab2, TX_Total,  adjustl(Valeur_lue) )
 
		if (BD_NBDON(ARTICLE_CHOISI) .LT. PAGE_CONSULTATION*10) then
		    Nb_Lignes = BD_NBDON(ARTICLE_CHOISI) - ((PAGE_CONSULTATION-1)*10)
		else
			NB_Lignes=10	
		endif
 
		retlog = DlgSet ( dlg_tab2, LB_Numero, NB_Lignes, DLG_NUMITEMS )
		retlog = DlgSet ( dlg_tab2, LB_Nom, NB_Lignes, DLG_NUMITEMS )
		retlog = DlgSet ( dlg_tab2, LB_Valeur, NB_Lignes, DLG_NUMITEMS )
		retlog = DlgSet ( dlg_tab2, LB_Desc, NB_Lignes, DLG_NUMITEMS )
 
		write (Valeur_lue, 997) PAGE_CONSULTATION
997		format (I4)
		retlog = DlgSet ( dlg_tab2, TX_Num_Page,  adjustl(Valeur_lue) )
 
		do i=1, Nb_Lignes        
			Indice = (PAGE_CONSULTATION-1)*10 + i
			write (Valeur_lue, 997) Indice
			retlog = DlgSet ( dlg_tab2, LB_Numero, adjustl(Valeur_lue) , i )
  			retlog = DlgSet ( dlg_tab2, LB_Nom, BD_NDON(ARTICLE_CHOISI,Indice), i )
 
			Call Formate_Donnee (ARTICLE_CHOISI, Indice, BD_VDON(ARTICLE_CHOISI,Indice), Valeur_lue)
 
 			retlog = DlgSet ( dlg_tab2, LB_Valeur, adjustr(Valeur_lue), i)
			retlog = DlgSet ( dlg_tab2, LB_Desc, BD_DDON(ARTICLE_CHOISI,Indice), i )
		enddo
 
	end select
 
END SUBROUTINE Aff_Article_BD
et Digital Visual Fortran me renvoi :

Unhandled exception in App.exe (NTDLL.DLL): 0xC0000005: Access Violation
Auriez vous une idée du pourquoi du comment... ?