SQLBulkCopy utilisé en conjonction avec Transaction et déclenchant un événement chaque fois qu'un lot est copié

c# sqlbulkcopy sql-server

Question

Je télécharge actuellement des données sur le serveur MS SQL via SQLBulkCopy et Transactions. Je voudrais pouvoir déclencher un événement après le téléchargement de chaque lot (j'ai déjà essayé l'événement SQLRowsCopied et cela ne fonctionne pas, voir la citation ci-dessous)

Citation MSDN:

Aucune action, telle que l'activité de transaction, n'est prise en charge dans la connexion lors de l'exécution de l'opération de copie en bloc. Il est recommandé de ne pas utiliser la même connexion que celle utilisée lors de l'événement SqlRowsCopied. Cependant, vous pouvez ouvrir une connexion différente.

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlbulkcopy.sqlrowscopied(v=vs.80).aspx

Donc, fondamentalement, je ne peux pas avoir mon gâteau et le manger :( Est-ce que quelqu'un connaît une solution à ce sujet car je voudrais déclencher un événement après chaque lot a été téléchargé.

Merci de votre aide.

Réponse acceptée

J'ai finalement décidé d'utiliser une transaction interne. ATM semble fonctionner correctement si une erreur est rencontrée, le lot en cours est annulé. En ce qui concerne le commentaire de Ben ci-dessus, j'ai essayé cela, mais ce n'est pas possible, ce n'est pas comme s'il parcourait une section de code où vous pouviez déclencher un événement. Finalement, j'ai utilisé la propriété notifyafter, qui déclenche un événement après la copie de x lignes, pour déclencher mon événement. Probablement pas la meilleure façon de le faire mais je ne pouvais pas trouver un meilleur moyen. J'espère que quelqu'un trouve cela utile.



Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi