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 :
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
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++; }
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.
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)
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
Partager