Pb Recordset VB

blowlagoon Messages postés 38 Date d'inscription mardi 7 janvier 2003 Statut Membre Dernière intervention 26 mars 2007 - 22 juin 2005 à 16:37
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 - 22 juin 2005 à 18:06
Bonjour à tous,

J'ai un petit souci avc un Recordset dans VB. En fait j'ai une ProcedureStockée avec deux Insert à l'interieur et un select sur le code Retour.
Cett PS est excuté via un recordset. l'execution se passe bien, sauf que j'arrive pa a récuperer le code retour. qd je fé rs.fields("coderetour") g rien dedans. et un message "Impossible de trouver l'objet ds la collection correspondante..." et en fait c dû au fait que g deux insert dans la PS avnt d efaire le "select @Coderetour" du coup impossible de recuperer sa valeur.

Est ce que qq'un a déja rencontrer se pb et peux m'eclairer sur la solution en gardant ma ps tellequelle. merci

LA PS:
CREATE PROCEDURE dbo.EXP_INSTDetail
(
@Identifiant VarChar(50),
@TypeProduit VarChar(3),
@TypeTraitement VarChar(3),
@Cmc7Z4 VarChar(12),
@Cmc7Z3 VarChar(12),
@Cmc7Z2 VarChar(12),
@Cmc7Z1 VarChar(12),
@MontantCal VarChar(12),
@NbChqCal VarChar(6),
@MontantAnn VarChar(12),
@NbChqAnn VarChar(6),
@CodeAgence VarChar(5),
@NoCompte VarChar(21),
@Cle VarChar(2),
@CodeMotif VarChar(2),
@TypeRemise VarChar(1),
@TopRNA VarChar(1),
@Ref VarChar(24),
@CodeClient VarChar(5),
@CodeCentre VarChar(3),
@DateTraitement SmallDateTime,
@CodePhase VarChar(2),
@DateHeureTraitement SmallDateTime,
@CodeResultat VarChar(10),
@MajPd TinyInt
)


AS
DECLARE @Idp Varchar(50)
DECLARE @Retour TinyInt


set @Idp = Null


BEGIN TRANSACTION
SELECT @Idp = IdProduit FROM EXP_TProduits
WHERE Identifiant = @Identifiant
AND CodeClient = @CodeClient
AND [mailto:DateTraitement=@DateTraitement DateTraitement = @DateTraitement]
AND [mailto:CodeCentre=@CodeCentre CodeCentre = @CodeCentre]


IF @Idp Is Null -- Insertion produit
BEGIN
INSERT EXP_TProduits
(
IdTypeProduit,
IdTraitement,
Zone4,
Zone3,
Zone2,
Zone1,
MtDocuments,
NbDocuments,
MtDocumentsAnn,
NbDocumentsAnn,
CodeAgence,
NoCompte,
Cle,
CodeAnomalie,
Categorie,
TopRNA,
CodeClient,
CodeCentre,
DateTraitement,
Identifiant
)
VALUES (
@TypeProduit,
@TypeTraitement,
@Cmc7Z4,
@Cmc7Z3,
@Cmc7Z2,
@Cmc7Z1,
@MontantCal,
@NbChqCal ,
@MontantAnn,
@NbChqAnn ,
@CodeAgence,
@NoCompte,
@Cle,
@CodeMotif,
@TypeRemise,
@TopRNA,
@CodeClient,
@CodeCentre,
@DateTraitement,
@Identifiant
)
IF @@ERROR = 0
BEGIN
set @Idp = @@IDENTITY
END
ELSE
BEGIN
ROLLBACK TRANSACTION
select 1 as RETOUR
return
END
END
---ELSE -- Update
if @MajPd=1
BEGIN
UPDATE EXP_TProduits
SET
Zone4 = @Cmc7Z4,
Zone3 = @Cmc7Z3,
Zone2 = @Cmc7Z2,
Zone1 = @Cmc7Z1,
MtDocuments = @MontantCal,
NbDocuments = @NbChqCal,
MtDocumentsAnn = @MontantAnn,
NbDocumentsAnn = @NbChqAnn,
CodeAgence = @CodeAgence,
NoCompte = @NoCompte,
Cle = @Cle,
CodeAnomalie = @CodeMotif,
Categorie = @TypeRemise,
TopRNA = @TopRNA,
CodeClient = @CodeClient,
[mailto:CodeCentre=@CodeCentre CodeCentre=@CodeCentre],
DateTraitement = @DateTraitement
WHERE IdProduit = @Idp
IF @@ERROR <> 0
BEGIN
ROLLBACK TRANSACTION
select 1 as RETOUR
return
END
END

IF @Idp Is Not Null -- Insertion operation
BEGIN
INSERT EXP_TOperations
(
IdProduit,
IdPhase,
DateHeure,
CodeResultat
)
VALUES (
@Idp,
@CodePhase,
@DateHeureTraitement,
@CodeResultat
)
IF @@ERROR = 0
Begin
COMMIT TRANSACTION
End
ELSE
BEGIN
ROLLBACK TRANSACTION
select 1 as RETOUR
return
END
END
ELSE --Annuler la transaction si Idproduit null : ne devrait jamais arriver
BEGIN
ROLLBACK TRANSACTION
select 1 as RETOUR
return
END


select 0 as RETOUR

1 réponse

cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
22 juin 2005 à 18:06
eh si je me fit a la structure de ta table, tu as pas le champs coderetour


-------------------------------------------------
Dragon alias aussi Waxime mais bon, pas le gout de refaire un nouveau profil lol
-------------------------------------------------
0
Rejoignez-nous