Précédent   Forum du club des développeurs et IT Pro > PHP > PHP & SGBD > PHP & ODBC
PHP & ODBC Forum d'entraide sur ODBC avec PHP. Avant de poster -> FAQ ODBC
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 16/10/2012, 11h22   #1
flacdo
Invité de passage
 
Inscription : avril 2012
Messages : 15
Détails du profil
Informations forums :
Inscription : avril 2012
Messages : 15
Points : 2
Points : 2
Par défaut Procédure stockée avec des dates : Error 37000

Bonjour

Je rencontre un problème pour lancer une procédure stockée SQL Server 2005, comportant une variable date et une datetime, depuis du PHP.

Mon code est le suivant :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
// Connexion au serveur TVM (SQL Serveur) :
$username="xxxxxx";  	// Représente le user sur la base
$password="xxxxxx";  	// Représente le password
$bd="xxx";  			// Représente le nom du driver ODBC pour SQL Server
$server="xx.xxx.xxx.xxx";
 
$connexionTVM = odbc_connect("Driver={SQL Server};Server=$server;Database=$bd;",$username,$password);
 
$a = 'A';
$b = 'KH001M';
$c = '"10/17/12"';
$d = '"10/17/12 06:30:00 AM"';
$e = 'GVA';
$f = '';
$g = '';
$h = '';
 
$stmt = odbc_prepare($connexionTVM, "{CALL My.Procedure($a, $b, $c, $d, $e, $f, $g, $h)}");
$res  = odbc_execute($stmt, array()) or die("<B>Error!</B> Couldn't Run Query: Error Code:  ".odbc_error());
La connexion n'est pas le problème. J'utilise déjà la même forme de code pour lancer d'autres procédures stockées sur le même serveur, mais qui n'ont accessoirement pas de date/datetime dans les paramètres.

L'erreur Odbc que j'ai : 37000 (via mon odbc_error())

J'ai déjà essayé plusieurs format de date, dont unix et yyyy-mm-dd hh:ii. J'ai rajouté un double guillemet car sinon j'ai l'erreur 37000 qui me pointe une erreur de syntaxe soit au niveau des "/" soit des "-" (Warning: odbc_execute(): SQL error: [Microsoft][ODBC SQL Server Driver][SQL Server]Syntaxe incorrecte vers '/'., SQL state 37000 in SQLExecute in blabla on line 28 --> erreur donnée sans le odbc_error())

Auriez-vous une idée sur ce qui bloque le lancement de la procédure ?

Merci pour votre aide
Flacdo
flacdo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/10/2012, 12h00   #2
flacdo
Invité de passage
 
Inscription : avril 2012
Messages : 15
Détails du profil
Informations forums :
Inscription : avril 2012
Messages : 15
Points : 2
Points : 2
Précision sur l'erreur affichée :
37000 [ODBC SQL Server Driver]Valeur de caractère non valide pour la spécification de la casse

J'ai essayé de passer les dates avec strtotime, en utilisant le format affiché dans SQLServer (mm/j/yyyy hh:ii:ss AM), avec doubles guillemets, simples guillemets... je suis vraiment à court d'idée :/
flacdo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/10/2012, 12h36   #3
sabotage
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 16 509
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 16 509
Points : 21 345
Points : 21 345
C'est plutôt des guillemets simples donc et en mettant l'année en entier :
Est-ce que tu as un résultat différent en mettant 10/17/2012 et 17/10/2012 ?
Si le résultat est le même, le problème ne se situe peut être pas au niveau de ce paramètre.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 00h23.


 
 
 
 
Partenaires

Hébergement Web