Par une raison inconnue la result
variable dans la ligne de code suivanteComment intriguer Tcl "liste comme chaîne" comme liste?
set result [[$sqlCmd execute] allrows -as lists]
obtient la chaîne qui ressemble à la liste: {2 3 4 5}
Si j'écris puts "result $result => [llength $result]"
imprime {2 3 4 5} => 1
si j'écris puts [list $result]
, il imprime {{2 3 4 5}}
, ce qui est correct car list
crée la liste à partir d'une chaîne.
Y at-il un moyen de convertir cette chaîne à ce qu'elle devrait être - list - sans aucune étape de traitement de chaîne comme la suppression des accolades et la séparation des chaînes à la liste par split
fonction? Je suggère que cela doit être une interprétation mais je suis incapable de trouver une bonne solution.
Ce n'est pas un expert TCL, mais cela ressemble à votre commande SQL qui vous donne une liste de longueur 1 dont 1 élément est une autre liste. Si la commande avait sélectionné deux lignes, elle vous aurait donné une liste de longueur 2 dont les éléments étaient des listes individuelles représentant des lignes individuelles. – user2357112
@ user2357112 Je ne suis pas sûr de comprendre ce que vous voulez dire. Il semble bonne suggestion que la liste de longueur-1 devient notlist. Mais comment cela peut-il se produire? Et en cours d'exécution dans la console SQL Server, la requête renvoie exactement une ligne de données, ce qui est attendu. Alors, pourquoi, en fait, devrait-il retourner une liste de longueur différente. S'il vous plaît expliquer, que voulez-vous dire. – OlegG
"liste de longueur-1 devient notlist" - quoi? Non, c'est toujours une liste. Pourquoi pensez-vous que ce n'est pas? – user2357112