Récupérer un identifiant automatique grâce à une procédure stockée sous SQL SERVER

Inscrit:
08/10/2003 15:30
De Montfort sur Argens (83)
Post(s): 209
Re Bonjour à toutes & à tous,

Aujourd'hui c'est la journée des questions

J'ai une procédure stockée sur SQL SERVER 2000 qui me permet de créer une nouvelle entrée dans une table, en voici le code :

Dans SQL SERVER :

CREATE PROCEDURE [AJOUT]
	(@ID_NOM 	[varchar](20),
	 @ID_PRENOM 	[varchar](20),
	 @ID_ADRESSE1 	[varchar](50),
	 @ID_ADRESSE2 	[varchar](50),
	 @ID_CODEPOSTAL 	[varchar](10),
	 @ID_VILLE 	[varchar](20))

AS INSERT INTO [TEST] 
	 ( [ID_NOM],
	 [ID_PRENOM],
	 [ID_ADRESSE1],
	 [ID_ADRESSE2],
	 [ID_CODEPOSTAL],
	 [ID_VILLE]) 
 
VALUES 
	( @ID_NOM,
	 @ID_PRENOM,
	 @ID_ADRESSE1,
	 @ID_ADRESSE2,
	 @ID_CODEPOSTAL,
	 @ID_VILLE)

GO



Dans WinDev 8 :

SQLParam est chaîne = "AJOUT @NOM=Durand, ...,@VILLE=TOULON"
ResExec est un booléen = SQLExec(SQLParam,"REQ2")
		SI PAS ResExec ALORS
			SQLInfoGene("REQ2")
			Info("Erreur exécution de la requête : " + SQL.MesErreur)
		FIN


J'aimerais dans WinDev après l'éxécution de la procédure stockée pouvoir récupérer l'identifiant automatique de l'enregistrement qui vient d'être créée. Je précise, je souhaite pouvoir récupérer cet identifiant par l'intermédiaire de ma procédure stockée, que dois je y modifier pour avoir le retour identifiant (apparemment il existe la fonction RETURN dans SQL SERVER mais je n'arrive pas à la mettre en application) ? Et ensuite comment l'exploiter dans WD8 (en gros comment récupérer l'identifiant après le SQLExec ?

Merci de votre aide...

Contribution le : 23/08/2004 13:14
_________________
Cordialement,
Thernius
-------------------------------------------
Itanéa.com, réalisations de logiciels & créations webs......
Créer un fichier PDF de la contribution Imprimer


Re: Récupérer un identifiant automatique grâce à une procédure stockée sous SQL SERVER

Inscrit:
08/10/2003 15:30
De Montfort sur Argens (83)
Post(s): 209
Apparemment, il est possible de placer une commande 'OUTPUT' dans la procédure stockée de SQL SERVER mais je n'arrive pas à effectuer l'interfaçage avec WinDev.

Voici le code de la nouvelle procédure stockée :
CREATE PROCEDURE [AJOUT]
	(@IDIDENTIFIANTS [int] OUTPUT,
         @ID_NOM 	[varchar](20),
	 @ID_PRENOM 	[varchar](20),
	 @ID_ADRESSE1 	[varchar](50),
	 @ID_ADRESSE2 	[varchar](50),
	 @ID_CODEPOSTAL 	[varchar](10),
	 @ID_VILLE 	[varchar](20))

AS INSERT INTO [TEST] 
	 ( [ID_NOM],
	 [ID_PRENOM],
	 [ID_ADRESSE1],
	 [ID_ADRESSE2],
	 [ID_CODEPOSTAL],
	 [ID_VILLE]) 
 
VALUES 
	( @ID_NOM,
	 @ID_PRENOM,
	 @ID_ADRESSE1,
	 @ID_ADRESSE2,
	 @ID_CODEPOSTAL,
	 @ID_VILLE)

GO


Quelqu'un a une idée ??

Contribution le : 23/08/2004 15:27
_________________
Cordialement,
Thernius
-------------------------------------------
Itanéa.com, réalisations de logiciels & créations webs......
Créer un fichier PDF de la contribution Imprimer


Re: Récupérer un identifiant automatique grâce à une procédure stockée sous SQL SERVER

Inscrit:
08/10/2003 15:30
De Montfort sur Argens (83)
Post(s): 209
Réponse & Question en autonomie... J'ai trouvé, YES

En fait, il faut exécuter la procédure stockée de façon normale. Ensuite, il suffit d'aller lire le dernier identifiant créée dans la base grâce à l'une des trois fonctions suivantes en fonction de la portée recherchée :
- SELECT IDENT_CURRENT('')
- SELECT @@IDENTITY
- SELECT SCOPE_IDENTITY()

Voici un code fonctionnel :


...
// Procédure de récupération du dernier ID modifié
ReqID est une chaine = "SELECT IDENT_CURRENT('<NomTable>')"
SQLExec(ReqID,"REQUETE1")
SQLPremier("REQUETE1")
DernierID est un entier = SQLCol("REQUETE1",1)
Info("L'identifiant est " + DernierID)


@ +

Contribution le : 23/08/2004 16:28
_________________
Cordialement,
Thernius
-------------------------------------------
Itanéa.com, réalisations de logiciels & créations webs......
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2