PDA

View Full Version : سوال: اجراي همزمان چند Insert



h_r_sh
چهارشنبه 05 فروردین 1388, 12:37 عصر
سلام
قراره كه سه تا دستور Insert اجرا بشن. اما اگه هر كدوم از دستورها به هر دليلي انجام نشد، تغييرات انجام شده در ساير دستورات هم لغو بشن. يعني اگه دستور اول مقادير مورد نظر رو ثبت كرد، دستور دوم با اشكال مواجه شد و بالاخره دستور سوم مقادير مورد نظر رو ثبت كرد، به دليل اينكه دستور دوم انجام نشده، دستورات اول و سوم هم Rollback بشن.
مشكلم اينجاست كه كل برنامه در سه لايه نوشته شده و نمدونم چطور Transaction ها رو در آخرين لايه مديريت كنم. يعني بگم Commit بشن يا Rollback ؟
ممنون مي شم اگه كسي در اين مورد راهنمايي كنه.

AminSobati
چهارشنبه 05 فروردین 1388, 13:19 عصر
سلام دوست عزیزم،
البته من اطلاع دقیقی از نحوه پیاده سازی لایه های شما ندارم، ولی بصورت عمومی دو روش وجود داره.

1) از BeginTransaction که خود ADO ساپورت میکنه استفاده بشه
2) رکوردهایی که قراره Insert بشن به شکل XML یکجا به SQL Server ارسال و در مقصد دوباره un-pack بشن. نسخه 2000 با دستور OpenXML و نسخه 2005 با xml.nodes میتونه un-pack بکنه. در این حالت میتونین کلش رو در یک Transaction قراربدین