Probleme d'objet requis ! [Résolu]

jorox 6 Messages postés lundi 27 janvier 2003Date d'inscription 12 octobre 2004 Dernière intervention - 6 oct. 2004 à 10:20 - Dernière réponse : daivil 87 Messages postés mardi 25 juin 2002Date d'inscription 4 juin 2005 Dernière intervention
- 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.
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
jorox 6 Messages postés lundi 27 janvier 2003Date d'inscription 12 octobre 2004 Dernière intervention - 12 oct. 2004 à 09:00
3
Merci
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

Merci jorox 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de jorox
daivil 87 Messages postés mardi 25 juin 2002Date d'inscription 4 juin 2005 Dernière intervention - 6 oct. 2004 à 11:42
0
Merci
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 --
Commenter la réponse de daivil
jorox 6 Messages postés lundi 27 janvier 2003Date d'inscription 12 octobre 2004 Dernière intervention - 6 oct. 2004 à 12:52
0
Merci
Ben je pensais que de mettre ma fonction seule serait util !
.....
Commenter la réponse de jorox
daivil 87 Messages postés mardi 25 juin 2002Date d'inscription 4 juin 2005 Dernière intervention - 6 oct. 2004 à 14:07
0
Merci
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 --
Commenter la réponse de daivil
jorox 6 Messages postés lundi 27 janvier 2003Date d'inscription 12 octobre 2004 Dernière intervention - 12 oct. 2004 à 08:24
0
Merci
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
Commenter la réponse de jorox
daivil 87 Messages postés mardi 25 juin 2002Date d'inscription 4 juin 2005 Dernière intervention - 12 oct. 2004 à 11:44
0
Merci
GG

-- Devil --
Commenter la réponse de daivil

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.