Bonjour,

J'ai un petit soucis je travaille pour un client sur la création d'un site web, en local sur ma machine tout fonctionne bien, mais lorsque j'integre mes pages sur le serveur du client, j'ai un clash que je ne comprends pas, apres maintes et maintes tentatives je ne trouve pas. Voici le problème :

Lorsque j'execute une page qui fait appel à une procedure stockée SQL serveur 2003 qui est sensé inserer des données dans une table et retourner la table en question, j'ai le message d'erreur suivant sur ma page :
ADODB.Recordset erreur '800a0e78'
Cette opération n'est pas autorisée si l'objet est fermé.

/****/******/****/****.asp, ligne 99
voici la fameuse ligne 99 : (et son contexte)
<%
function getBillPrice(numCom, numCli)
{
var _numCom = numCom;
var _numCli = numCli;
var getBillPrice = Server.CreateObject("ADODB.Recordset");
getBillPrice.ActiveConnection = MM_siteSQL_STRING;
getBillPrice.source = "GetBillPrice('" + _numCom + "', '" + _numCli + "')";
getBillPrice.CursorType = 0;
getBillPrice.CursorLocation = 2;
getBillPrice.LockType = 1;
getBillPrice.Open();
ligne 99 -->if(getBillPrice.EOF || getBillPrice.BOF) {
getBillPrice = Server.CreateObject("ADODB.Recordset");
getBillPrice.ActiveConnection = MM_siteSQL_STRING;
getBillPrice.source = "select 'Pas de montant' as 'TTCPrice'";
getBillPrice.CursorType = 0;
getBillPrice.CursorLocation = 2;
getBillPrice.LockType = 1;
getBillPrice.Open();
}

return getBillPrice;
}
%>

voici le code de la procédure :

CREATE PROCEDURE GetBillPrice @Bill_Id varchar(9), @Cli_Id varchar(17) AS

BEGIN TRANSACTION
Declare @NumPiece varchar(9);
delete from TA_ResultLines;
Declare getBillHeaders cursor for select DO_Piece from E_DOCENTETE where Cle_Prod = @Bill_Id and DO_Tiers = @Cli_Id;




open getBillHeaders;
fetch getBillHeaders into @NumPiece;

while(@@FETCH_STATUS <> -1)
BEGIN
insert into TA_ResultLines
(RET_AR_REF, RET_AR_DESIGN, RET_Enum_Cond, Ret_QTE_BC, RET_PUHT, RET_Remise_Valeur,
RET_Remise_Type, RET_PT_Remise_HT, RET_Type, RET_PUTTC, RET_PT_Remise_TTC)
select AR_REF, DL_DESIGN, EU_ENUMERE, DL_QTEBC, DL_PrixUnitaire, DL_Remise01REM_Valeur,
DL_Remise01REM_Type, DL_MONTANTHT,DO_Type, (DL_PrixUnitaire + ((DL_PrixUnitaire * DL_Taxe1)/100)), (DL_MONTANTHT + ((DL_MONTANTHT * DL_Taxe1)/100))
from E_DOCLIGNE where DO_Piece = @NumPiece and DL_QTE <> 0;

fetch next from getBillHeaders into @NumPiece;
END

close getBillHeaders;
deallocate getBillHeaders;

select sum(RET_PT_Remise_HT) as 'HTPrice', sum(RET_PT_Remise_TTC) as 'TTCPrice'
from TA_ResultLines;
COMMIT;
GO
j'ai regardé, ma table est bien effacée a chaque lancement de la procedure, elel est bien remplie avec toutes les valeurs qui vont bien, mais apres ben bam lors de la reception de la procedure a ma page asp, adodb considere que la reception est invalide et donc ferme mon recordset.

et la je seche.

P.S : pour info quand je mets ma procedure en commentaire et que je fait juste ca :
select 00 as 'HTPrice', 00 as 'TTCPrice';
Tout fonctionne impec.