Bonjour,

Je demande votre aide car je n'y arrive decidement pas.
Cette transaction dois regrouper 2 requetes (2 insert into).

Malheuresement j'ai le message d'erreur suivant, que je n'arrive pas a resoudre :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
Warning: odbc_do(): SQL error: [Microsoft][ODBC SQL Server Driver][SQL Server]Le identificateur qui commence par 'CREATION_COMMANDEbeginSP_CREER_COMMANDE' est trop long. La longueur maximale est 32., SQL state 37000 IN SQLExecDirect IN c:\program files\easyphp1-8\www\pti_jv_admin_clients\jeuxvideo_clients\panier_4.php ON line 184
Voici un extrait de mon code:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
//TRANSACTION
		$createcmd = "BEGIN TRANSACTION CREATION_COMMANDE"; //On démarre une transaction et on lui donne un nom
		$createcmd .= "begin";
		$createcmd .= "SP_CREER_COMMANDE '$idclient', '$datecmd', '$tot', '$liv' ";
		//$rs=odbc_do($connection,$createcmd);
 
		if ($createcmd)
		{
			// recupération de l'id de la commande par rapport
			// au numéro client et à la dernière de ses commandes
			$riq = "SP_RECUPCMD_COMMANDE '$idclient' ";
			$rik=odbc_do($connection,$riq);
			odbc_fetch_into($rik,$fiis);
			$NumCd=$fiis[0];
 
			foreach ($panier as $valeur=>$cde)
			{
				$sql15 = "SP_INFOJEU_JEUX_VIDEO '$valeur' ";
				$req15=odbc_do($connection,$sql15);
				// recupération du stck d'un produit
				$stck=odbc_result($req15,'jv_qte');
				$nbVente=odbc_result($req15,'jv_nbvente');
				$newNbVente= $nbVente + $cde;
				$newstock = $stck - $cde;
 
				//mise à jour du stock
				$udstock= "SP_MAJSTOCK_JEUX_VIDEO '$newstock', '$newNbVente', '$valeur' ";
				$rudstock=odbc_do($connection,$udstock);
 
				if($rudstock)
				{
						$createcmd.="SP_CREERARTICLECMD_LIGNECOMMANDE '$NumCd', '$valeur', '$cde' ";
						$rsILS=odbc_do($connection,$createcmd);
 
						if ($rsILS)
						{
							$createcmd .= " COMMIT TRANSACTION CREATION_COMMANDE "; //On commit la transaction
							echo "<SCRIPT LANGUAGE='JavaScript'>alert('Votre commande à bien été prise en compte.');</SCRIPT>  ";
							echo "	<h3 align=center>Votre commande à bien été prise en compte.<br/> <a href=ResumerCommande.php  class=type1> Voir le résumer de la commande</a></h3>";
							echo '<script language="javascript">document.location.href = "ResumerCommande.php"</script>';
							$_SESSION['RefCmd']= $NumCd;
							unset($_SESSION['panier']);
						}// si il y a eu des erreurs
						else 
						{
							echo 'Une erreure est survenue';
							$createcmd .= " ROLLBACK TRANSACTION CREATION_COMMANDE "; //On annule tous les changements de cette transaction
						}
//FIN TRANSACTION						
				}
				else
				{
					echo 'Une erreure est survenue';
				}
			}
		}
Merci pour votre aide