Bonjour

Je tente actuellement de développer un site web en php pour interroger une base mssql contenant mes métriques de performances historisées.
Tout fonctionne correctement sauf la récupération des plans d’exécution et le code SQL pour ceux contiennent beaucoup de caractères.

Pour la récupération du code sql je construis un tableau comme suit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
  	while(odbc_fetch_into($l_tab_resul,$row)){
  		for($i=0;$i<=$width;$i++){
			    $val = trim($row[$i]);
				$pieces = explode("\n", $val);
				$l_str_htmlCode .= "<td class=linktab>";
				for($j=0;$j<=sizeof($pieces);$j++){
					$l_str_htmlCode .= "<font class=data_Elem><div>".$pieces[$j]."</div></font>";
				}
				$l_str_htmlCode .= "</td>";
  			}
  		$l_str_htmlCode .= "</tr>";
  		$nb++;
  		}
Voici un exemple de requête test SQL dont le résultat sera affecté à la variable $l_tab_result ci dessus :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
-- For SQL Query
select top 1 convert(varchar(5000),text) from sys.dm_exec_query_stats
cross apply sys.dm_exec_sql_text(sql_handle)
-- For Plan Query 
select top 1 convert(varchar(5000),query_plan) from sys.dm_exec_query_stats
cross apply sys.dm_exec_text_query_plan(plan_handle,statement_start_offset,statement_end_offset)
Il apparait alors dans mon tableau html des symboles bizarres (ex : ÞZŒum_o). Si j'augmente le varchar, cela ne change rien. D'ailleurs, quand je lance la requête sur le serveur SQL directement, je n'ai pas de problème.
J'ai testé aussi avec un champ text à la place du varchar. Les symboles (affichés avec le varchar) disparaissent mais si le résultat de la requête est tronqué sous html.

Si quelqu'un a une idée, je sais pas par ou prendre le problème

Merci
Jeeps64