Probleme d'objet requis !

Résolu
jorox Messages postés 6 Date d'inscription lundi 27 janvier 2003 Statut Membre Dernière intervention 12 octobre 2004 - 6 oct. 2004 à 10:20
daivil Messages postés 87 Date d'inscription mardi 25 juin 2002 Statut Membre Derniè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")

objconn_prevu.Open "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;password=sql2002;Initial Catalog=PRM3;Data Source=S23HELAT686"


requete_prevu="SELECT TARTICLE.ART_SYMBOLE, TARTICLE.VALEUR_KE, TARTICLE.ART_LIBELLE, TARTICLE.CODE_ANA, TCOMPTE_ANALYTIQUE.LIBELLE_ANA, TUT_REPARER.CODE_UP,"
requete_prevu=requete_prevu & " TUP.LIBELLE_UP, TARTICLE.CODE_UTIL, TUT_REPARER.LIBELLE_UT"
requete_prevu=requete_prevu & " FROM TARTICLE INNER JOIN"
requete_prevu=requete_prevu & " TCOMPTE_ANALYTIQUE ON TARTICLE.CODE_ANA = TCOMPTE_ANALYTIQUE.CODE_ANA INNER JOIN"
requete_prevu=requete_prevu & " TUT_REPARER ON TUT_REPARER.CODE_UTIL = TARTICLE.CODE_UTIL INNER JOIN"
requete_prevu=requete_prevu & " TUP ON TUP.CODE_UP = TUT_REPARER.CODE_UP AND TUP.CODE_SECTEUR = TUT_REPARER.CODE_SECTEUR WHERE left(TARTICLE.CODE_ANA,7) ='"& rs_comptes(0) &"' order by TARTICLE.ART_SYMBOLE, TARTICLE.CODE_ANA;"

dim temp_prm,temp_revent,temp_fim,temp_cad,temp_cip, temp_temps_total,temp_fs, temp_fal,x

rs_comptes_prevu.Open requete_prevu, objconn_prevu

'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

temp_prm=temp_prm+objcmd_prevu.Parameters("prm")
temp_revent=temp_revent+objcmd_prevu.Parameters("revent")
temp_fim=temp_fim+objcmd_prevu.Parameters("fim")
temp_cad=temp_cad+objcmd_prevu.Parameters("cad")
temp_cip=temp_cip+objcmd_prevu.Parameters("cip")
temp_temps_total=temp_temps_total+objcmd_prevu.Parameters("temps_total")
temp_fs=temp_fs+objcmd_prevu.Parameters("fs")
temp_fal=temp_fal+objcmd_prevu.Parameters("fal")
temp_mo=temp_mo+objcmd_prevu.Parameters("mo")

set objcmd_prevu=nothing
rs_comptes_prevu.MoveNext
wend

rs_comptes_prevu.close

stockee=round(temp_PRM+temp_revent+(temp_PRM*17)/100,2)
non_stockee=round(temp_CAD + temp_CIP,2)
mo_dir=round(temp_MO+temp_FS+temp_FAL,2)
calcul = mo_dir+stockee+non_stockee
response.write("" & calcul & "")
****************************************

A ceci j'ai ajouté la ligne suivante au début de ma page ASP :
<!--#include file="adovbs.inc"-->

Ce code fait donc appel à une procedure stocké SQLSERVER2000 :
**********************************************
CREATE PROCEDURE CRM_PREVISIONNEL

@symbole varchar(9),
@PRM float output,
@temps_total float output,
@revent float output,
@FIM float output,
@CAD float output,
@CIP float output,
@MO float output,
@FS float output,
@FAL float output

AS

/*MO DIRECTE TOTALE*/

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

if (@prm is null)
begin
set @prm=0
end

/*Reventilation: */

declare @KE float
declare @sigma_ke float
declare @aux float, @reventilation float

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...

ALORS QU'EST CE QUI SE PASSE ?????

si quelqu'un peut m'aider ?
Merci d'avance.

6 réponses

jorox Messages postés 6 Date d'inscription lundi 27 janvier 2003 Statut Membre Dernière intervention 12 octobre 2004
12 oct. 2004 à 09:00
oh non d'un schtroumpf j'ai trouvé, c'est juste une faute d'orthographe dans une variable... uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu

bon ben merci !
voili ce qui se passe quand on code un gros paté d'une seule traite !
lol
3
daivil Messages postés 87 Date d'inscription mardi 25 juin 2002 Statut Membre Dernière intervention 4 juin 2005
6 oct. 2004 à 11:42
Ca ne sert à rien de coller ta source ici, il n'y a personne qui va la lire...

Tu ferais mieux de donner uniquement les 5 lignes autour de l'erreur, ce serait beaucoup plus utile !

-- Devil --
0
jorox Messages postés 6 Date d'inscription lundi 27 janvier 2003 Statut Membre Dernière intervention 12 octobre 2004
6 oct. 2004 à 12:52
Ben je pensais que de mettre ma fonction seule serait util !
.....
0
daivil Messages postés 87 Date d'inscription mardi 25 juin 2002 Statut Membre Dernière intervention 4 juin 2005
6 oct. 2004 à 14:07
Ben non puisqu'on ne peut pas prendre le temps de la lire en entière...

Veux-tu bien repréciser ton problème ? Avec plus de détails et moins de blabla stp ?

-- Devil --
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jorox Messages postés 6 Date d'inscription lundi 27 janvier 2003 Statut Membre Dernière intervention 12 octobre 2004
12 oct. 2004 à 08:24
OKI donc je recentre le tout !

voici la ligne qui pose probleme :

********************************************
set param_prevu=objcmd.CreateParameter ("prm", adSingle, adParamOutput)
objcmd_prevu.Parameters.Append (param_prevu)
********************************************

IE me met : Erreur d'exécution Microsoft VBScript (0x800A01A8)
Objet requis: ''
/prm/contenu_Suivi_P_R.asp, line 537
0
daivil Messages postés 87 Date d'inscription mardi 25 juin 2002 Statut Membre Dernière intervention 4 juin 2005
12 oct. 2004 à 11:44
GG

-- Devil --
0
Rejoignez-nous