Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > PEAR > DB & MDB2
DB & MDB2 Forum d'entraide pour les bibliothèques DB et MDB2 du framework PEAR, permettant de manipuler les bases de données en PHP. Avant de poster -> tutoriels DB et MDB2
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/01/2007, 19h48   #1
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 726
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Expert SQL Server
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 726
Points : 6 851
Points : 6 851
Par défaut [MDB2] Erreur avec une procédure stockée

Bonsoir tout le monde !!

Bonne année tout d'abord !!

Ensuite j'aimerais savoir si quelqu'un avait déjà eu le souci suivant avec MDB2 de PEAR.

J'ai un souci avec la méthode ExecuteStoredProcedure.

Code :
1
2
3
4
5
6
$param = array(
           'LivreId' => '012345',
           'NomLivre' => 'Livre Test'
);
 
$this->db->ExecuteStoredProcedure("MAJ_BASE",$param);

J'ai l'erreur suivante --> MDB2:violation Constraint

J'ai donc chercher et je me suis aperçu que cela ne fonctionnait pas pour tous les id commençant par le chiffre 0.

Quelqu'un a-t-il une idée ?

Merci
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2007, 22h04   #2
Modérateur
 
Avatar de mathieu
 
Inscription : juin 2003
Messages : 4 893
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 4 893
Points : 4 466
Points : 4 466
Citation:
Envoyé par mikedavem
je me suis aperçu que cela ne fonctionnait pas pour tous les id commençant par le chiffre 0.
est ce que tu as la même erreur quand tu lances directement la procédure stockées ?
ce n'est peut-être pas un problème de MDB2
__________________
Modérateur PHP
mathieu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2007, 22h13   #3
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 726
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Expert SQL Server
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 726
Points : 6 851
Points : 6 851
Oui , j'ai testé directement avec la procédure stockée avec les paramètres qui posent pb et cela fonctionne correctement
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2007, 14h51   #4
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 726
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Expert SQL Server
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 726
Points : 6 851
Points : 6 851
Re

Bon effectivement j'avais mal testé .. Ma procédure stockée ne marche pas bien lorsque je rentre une donnée avec des 00 devant.

Je vais donc chercher mon problème ailleurs

++
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/01/2007, 16h49   #5
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 726
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Expert SQL Server
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 726
Points : 6 851
Points : 6 851
Pour ceux que çà intéresse
Finalement la syntaxe de ma fonction appelant la procédure n'était pas bonne

.(version originale)
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$param = array( // Paramètre de la procédure stockée
		'@CLIENTREF' => $clientref,
		'@LIEUREF' => $lieuref,
		'@ARTICLEREF' => $articleref,
		'@CATEGORIEREF' => $categorieref,
		'@TECHUPDATE' => $techupdate,
		'@QTEUPDATE' => $qteupdate,	
		'@NUMSERIEUDPATE' => $numserieupdate
	);
 
// Chargement du module Function
$function = $this->db->loadModule('Function'); 
// Exécution de la procédure
$resultupdate = $this->db->function->executeStoredProc("UPDATE_INVENTAIRE",$param);
.(version corrigée)
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$param = array( // Paramètre de la procédure stockée
		'@CLIENTREF' => '"'.$clientref.'"',
		'@LIEUREF' => $lieuref,
		'@ARTICLEREF' => '"'.$articleref.'"',
		'@CATEGORIEREF' => $categorieref,
		'@TECHUPDATE' => $techupdate,
		'@QTEUPDATE' => $qteupdate,	
		'@NUMSERIEUDPATE' => $numserieupdate
	);
 
// Chargement du module Function
$function = $this->db->loadModule('Function'); 
// Exécution de la procédure
$resultupdate = $this->db->function->executeStoredProc("UPDATE_INVENTAIRE",$param);
Pour mes données de type varchar j'ai donc entouré les champs de guillemets.
Sinon ca me génère ma fameuse erreur

++
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h18.


 
 
 
 
Partenaires

Hébergement Web