Bonjour,
J'ai un problème avec l'utilisation de SQLCMD, appelé sur une seule ligne depuis la console.
Pour que mes données résultats soient correctement encodées, je n'ai trouvé comme solution que d'utiliser l'option -f1252 (codepage correspondant à ma base de données et je n'ai pas la main dessus).
Seulement voilà, cette option -f n'est utilisée que si l'option -o est utilisée pour indiquer le fichier de sortie (ou du moins j'en ai l'impression). Or dans ce cas, la sortie standard et la sortie d'erreur sont regroupées dans le fichier indiqué par -o.
Mon problème est qu'il me faut pouvoir distinguer, après l'exécution, ma sortie standard de ma sortie d'erreur. Effectivement dans certains cas - par exemple le cas où l'appel tombe en timeout -, SQLCMD ne positionne pas l'ERRORLEVEL et je ne détecte pas qu'il y a eu un problème. Pourtant les données ne sont pas valides du tout : la sortie contient juste le message indiquant le timeout atteint.
Arrivée là, j'ai le constat suivant :
- Soit j'utilise -f et -o et mes données sont correctement encodées, mais je ne détecte pas les timeout (problème bloquant dans mon cas)
- Soit j'utilise >1 et >2 pour rediriger les sorties, je peux détecter les erreurs en analysant la sortie d'erreur, mais mes données sont mal encodées... (bloquant aussi)
Est-ce que quelqu'un aurait une idée ? Ça fait plusieurs fois que je cherche et je ne trouve pas de solution
Merci d'avance !
Partager