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 : 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
 
// 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