2010-02-07 7 views
1

J'utilise ADO dans un script JScript (dialecte Microsoft Microsoft) Windows Scripting Host pour mettre à jour une table SQL Server. Je voudrais obtenir le nombre de lignes affectées par la mise à jour dans le script, mais JavaScript n'a pas de référence par passage et donc je ne peux pas faire la chose habituelle où je reçois les enregistrements affectés de Command#Execute de la fonction RecordsAffected argument. Donc, je cherche le meilleur moyen d'obtenir cette information.Comment puis-je obtenir le nombre de lignes affectées par une instruction utilisant ADO avec JavaScript?

Pour des raisons non liées directement à cette question, je veux éviter d'utiliser une procédure stockée pour ce même si je me rends compte que ce serait travail (je venais de revenir @@rowcount de la SP). J'essaie de trouver un moyen non-fiable mais simple de le faire.

J'ai regardé autour et trouvé cette syntaxe de l'instruction:

UPDATE MyTable 
SET MyColumn = (blah blah blah) 
WHERE (blah blah blah) ; 
SELECT @@rowcount as 'RowsAffected' 

... qui me renvoie une rangée ResultSet contenant le compte. Cela semble fonctionner, et dans mon test limité semble fonctionner correctement (je ne comprends pas le mauvais compte quand d'autres opérations sont également en cours, etc.), mais il semble ... kludgy pour une raison quelconque.

Est-ce la meilleure façon de le faire, compte tenu des contraintes peut-être déraisonnables que j'ai énumérées? Les solutions multiplates-formes ne sont pas nécessaires (bien que, comme toujours), elles peuvent être spécifiques à Microsoft SQL Server (2005+).

Merci d'avance.

+1

Je ne sais pas pourquoi vous pensez que c'est kludgy. Rien à redire avec cette approche – Andomar

+0

@Andomar: Merci. Ouais, je ne peux pas mettre le doigt sur pourquoi pas non plus, et ce "sentiment" a été faux avant (ainsi que juste). On dirait que je devrais probablement aller avec. (Vous voudrez peut-être transformer votre commentaire en une réponse, il répond directement à ma question.) –

+0

Bien sûr, eh, ce n'est pas une réponse très informative tho;) – Andomar

Répondre

1

Je ne sais pas pourquoi vous pensez que c'est kludgy. Rien de mal avec cette approche.

Questions connexes