Bonjour,

Je souhaite synchroniser 2 bases de données.
Dans le gestionnaire de odbc du poste, j'ai créé deux sopurces de données systeme.

Voici le code utilisé:
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
<?
$BaseBD1="BD1";
$baseBD2="BD2";
//Déclaration des utilisateurs et des mots de passe 
$MpdBD1='';
$UserBD1='';
//Declaration des identifiant de connexion au base valeur retour de la fonction odbc_Connect 
 
 
 //On se connecte à la base BD1
$cnx = odbc_connect( $BaseBD1 , $UserBD1, $MpdBD1);
$con=odbc_connect( $baseBD2 , $UserBD2, $MpdBD2 );
 
if($cnx)//connexion baseBD1
 	{ 	//si on arrive ici c'est que la connexion est effective.
		//DANS UN PREMIER TEMPS ON BASCULE LES INTERVENTIONS NON REALISEES ET NON CLOTURE DE BD2 DANS BD1		 
                            $reqInterBD2="SELECT ";
		  $reqInterBD2.=" idintervention,";//enreg[0]
		  $reqInterBD2.=" TiersCode,";//enreg[1]
		  $reqInterBD2.=" TypeTiers,";//enreg[2]
		  $reqInterBD2.=" Date,";//enreg[3]
		  $reqInterBD2.=" Hdeb,";//enreg[4]
		  $reqInterBD2.=" LibelleIntervention,";//enreg[5]
		  $reqInterBD2.=" descriptifIntervention,";//enreg[6]
		  $reqInterBD2.=" siteid";//enreg[7]
		  $reqInterBD2.=" FROM ";
		  $reqInterBD2.=" Intervention ";
		  $reqInterBD2.=" WHERE ";
		  $reqInterBD2.=" cloture=0 ";
		  $reqInterBD2.=" AND realisee=0 ";
		  //on execute la requete sur la base BD2
		  $ResultBD2=odbc_exec($con,$reqInterBD2);
 
		  if($ResultBD2)
		  {
		  	//on parcours le resultat de la requete
		  	while(odbc_fetch_into($ResultBD2,$enreg)) 
		  	{
		  		 		  		//on recupere l'identifiant du site BD2
		  	  	if (is_null($enreg[7])  
		  	 	{
 
		  	 		  		  	 		$req="Select idSiteBD1 from tiersadresses where codeTiers='$enreg[1]' and TypeTiers='$enreg[2]' and TypeAdresse='F'";
		  	 		//on execute la requete
		  	 		$Res=odbc_exec($con,$req);
		  	 		if($Res)
		  	 		{
 
		  	 			odbc_fetch_row($Res);
		  	 			$idsiteBD1=odbc_result($Res,1);
		  	 			 		  	 		}	 	  	 		
 
		  	 	}
		  	 	else
		  	 	{
 
		  	 		//on recupere l'identifiant BD1du site de l'intervention
 
		  	 	} 
 
 
		  	}
 
		  }
	 }
else
	{
		echo "Impossible de se connecter à  la base de données";
	}
//ferme la connexion
odbc_close( $cnx); 
odbc_close( $con);  
 
?>
Si la deuxieme requete n'est pas lancée, je peux recupere les valeur de $enreg.
Par contre, si $Res=odbc_exec($con,$req); s'execute $enreg ne renvoie que des valeurs vides pour toutes les lignes de resultat restantes de la requete 1.

Se pourrait-il que cela proviennent d'un pb de curseur?
si oui, comment cela peut-il se régler?

Merci pour votre aide.

Julie