jorox
Messages postés6Date d'inscriptionlundi 27 janvier 2003StatutMembreDernière intervention12 octobre 2004
-
6 oct. 2004 à 10:20
daivil
Messages postés87Date d'inscriptionmardi 25 juin 2002StatutMembreDernière intervention 4 juin 2005
-
12 oct. 2004 à 11:44
Bonjour voici un code d'une page ASP :
****************************************
dim param_prevu, rs_comptes_prevu, objconn_prevu, objcmd_prevu, requete_prevu
set objconn_prevu=server.createobject("adodb.connection")
set rs_comptes_prevu=server.createobject("adodb.recordset")
set param_prevu=server.createobject("adodb.parameter")
'on met à 0 les variables temporaires
temp_prm=0
temp_revent=0
temp_fim=0
temp_cad=0
temp_cip=0
temp_temps_total=0
temp_fs=0
temp_fal=0
temp_mo=0
rs_comptes_prevu.MoveFirst
While not rs_comptes_prevu.EOF
'on va faire une moyenne
set objcmd_prevu=server.createobject("adodb.command")
objcmd_prevu.ActiveConnection=objconn_prevu
objcmd_prevu.CommandType=adCmdStoredProc
objcmd_prevu.CommandText="CRM_PREVISIONNEL"
set param_prevu=objcmd_prevu.CreateParameter("symbole", adVarChar, adParamInput, 9, rs_comptes_prevu("art_symbole"))
objcmd_prevu.Parameters.Append (param_prevu)
set param_prevu=objcmd.CreateParameter ("prm", adSingle, adParamOutput)
objcmd_prevu.Parameters.Append (param_prevu)
set param_prevu=objcmd.CreateParameter ("temps_total", adSingle, adParamOutput)
objcmd_prevu.Parameters.Append (param_prevu)
set param_prevu=objcmd.CreateParameter("revent", adSingle, adParamOutput)
objcmd_prevu.Parameters.Append (param_prevu)
set param_prevu=objcmd.CreateParameter("FIM", adSingle, adParamOutput)
objcmd_prevu.Parameters.Append (param_prevu)
set param_prevu=objcmd.CreateParameter("CAD", adSingle, adParamOutput)
objcmd_prevu.Parameters.Append (param_prevu)
set param_prevu=objcmd.CreateParameter("CIP", adSingle, adParamOutput)
objcmd_prevu.Parameters.Append (param_prevu)
set param_prevu=objcmd.CreateParameter("MO", adSingle, adParamOutput)
objcmd_prevu.Parameters.Append (param_prevu)
set param_prevu=objcmd.CreateParameter("FS", adSingle, adParamOutput)
objcmd_prevu.Parameters.Append (param_prevu)
set param_prevu=objcmd.CreateParameter("fal", adSingle, adParamOutput)
objcmd_prevu.Parameters.Append (param_prevu)
objcmd_prevu.Execute
'on boucle pour ajouter les resultats et ainsi grouper par compte
declare curseur_MO cursor for
SELECT SUM(ANECESSITE.TAUX_INTERVENTION * ANECESSITE.TPS_UNITAIRE_NECESSAIRE) as TPS_TOTAL,
SUM(ANECESSITE.TAUX_INTERVENTION * ANECESSITE.TPS_UNITAIRE_NECESSAIRE * TGESTION_APP.CEP_MOYEN) AS MO,
SUM(ANECESSITE.TAUX_INTERVENTION * ANECESSITE.TPS_UNITAIRE_NECESSAIRE) *TGESTION_APP.FRAIS_A_L AS FRAIS_ADMIN,
SUM(ANECESSITE.TAUX_INTERVENTION * ANECESSITE.TPS_UNITAIRE_NECESSAIRE) * TUP.FRAIS_SECTEUR AS FRAIS_SECTEUR
FROM ANECESSITE CROSS JOIN
TGESTION_APP INNER JOIN
TARTICLE ON TARTICLE.ART_SYMBOLE = ANECESSITE.ART_SYMBOLE INNER JOIN
TUT_REPARER ON TARTICLE.CODE_UTIL = TUT_REPARER.CODE_UTIL INNER JOIN TUP ON TUP.CODE_UP TUT_REPARER.CODE_UP AND TUT_REPARER.CODE_SECTEUR TUP.CODE_SECTEURWHERE (ANECESSITE.ART_SYMBOLE @symbole) AND (TGESTION_APP.CODE_FRAIS (SELECT code_frais
FROM tetablissement
WHERE code_uc = '23721'))
GROUP BY TGESTION_APP.FRAIS_A_L, TUP.FRAIS_SECTEUR
OPEN curseur_MO
fetch curseur_MO into @temps_total,@mo,@fal,@fs
close curseur_MO
deallocate curseur_MO
if (@temps_total is null)
begin
set @temps_total=0
end
if (@mo is null)
begin
set @mo=0
end
if (@fal is null)
begin
set @fal=0
end
if (@fs is null)
begin
set @fs=0
end
/*OPERATION IP */
declare curseur_IP cursor for
SELECT SUM(PRIX_OP)
FROM TOPERATION_IP
WHERE (CODE_OP IN
(SELECT code_op
FROM aest_fait
WHERE art_symbole = @symbole))
OPEN curseur_IP
fetch curseur_IP into @CIP
if (@cip is null)
begin
set @cip=0
end
close curseur_IP
deallocate curseur_IP
/*MStockée :
PRM constitutives */
declare curseur_PRM cursor for
SELECT SUM(ACOMPOSE.QUANTITE_PRM * TARTICLE.PRIX_NEUF) AS PRM
FROM ACOMPOSE INNER JOIN
TARTICLE ON TARTICLE.ART_SYMBOLE = ACOMPOSE.TAR_ART_SYMBOLE
WHERE (ACOMPOSE.ART_SYMBOLE = @symbole)
open curseur_PRM
fetch curseur_PRM into @PRM
close curseur_PRM
deallocate curseur_PRM
SELECT @sigma_ke= (SUM(valeur_ke) * 12)
FROM tarticle
WHERE code_ana =
(SELECT code_ana
FROM tarticle
WHERE art_symbole = @symbole)
if @sigma_ke=0
begin
set @sigma_ke=1
end
declare curseur_revent cursor for
SELECT sum(TCPTE_REVENTILATION.PRIX_REVENT * AVIREMENT_ANALYTIQUE.TAUX_VIR_ANA / 100 /@sigma_ke) AS Prix
FROM TCPTE_REVENTILATION INNER JOIN
AVIREMENT_ANALYTIQUE ON AVIREMENT_ANALYTIQUE.CODE_REVENT = TCPTE_REVENTILATION.CODE_REVENT INNER JOIN
TARTICLE ON TARTICLE.CODE_ANA = AVIREMENT_ANALYTIQUE.CODE_ANA
WHERE (TARTICLE.ART_SYMBOLE = @symbole)
open curseur_revent
fetch curseur_revent into @revent
close curseur_Revent
deallocate curseur_Revent
if (@revent is null)
begin
set @revent=0
end
/*
FIM et CAD
*/
select @FIM=FRAIS_I_M from TGESTION_APP where CODE_FRAIS =
(SELECT code_frais
FROM tetablissement
WHERE code_uc = '23721')
select @CAD=couts_achats_directs from tarticle where tarticle.art_symbole=@symbole
if (@cad is null)
begin
set @cad=0
end
GO
**********************************************
Tout ceci devrait fonctionner à merveille ! Seulement, IE m'affiche le message d'erreur suivant :
Type d'erreur :
Erreur d'exécution Microsoft VBScript (0x800A01A8)
Objet requis: ''
/prm/Contenu_Suivi_P_R.asp, line 538
La ligne 538 étant :
set param_prevu=objcmd_prevu.CreateParameter("symbole", adVarChar, adParamInput, 9, rs_comptes_prevu("art_symbole"))
MAIS IL N'Y AS PAS D'ERREUR A CETTE LIGNE D'APRES MOI, LE CODE DE CETTE LIGNE EST EXACTE ! DE PLUS TOUTES LES VARIABLES SONT CORRECTS AUSSI...