نقل قول:
خیلی جالب است، خیلی!!!!
شما حتی لفظ برنامه نویسی اش را هم نمیدانید اما دقیقاً دارید جملاتی را میگویید که برنامه نویسان گذشته دقیقاً همین جملات را تکرار کرده بودند و طراحان بانکهای اطلاعاتی رابطه ای هم با ان دست به گریبان بودند.
نمیدونم تیکه پروندی یا نصیحت کردی! به هر حال بگذریم
نقل قول:
در T-SQL با دستورات BEGIN TRAN و COMMIT TRAN و ROLLBACK TRAN میتوانید تراکنش ها را ایجاد و مدیریت کنید.
کد:
BEGIN TRAN T1;--...--... any t-sql ...--... if error then "ROLLBACK TRAN T1;"--...COMMIT TRAN T1;
قبلا یکی دو مثال از این روش که توسط خود SQL درست شده بود دیدم ولی این روش رو فقط تو خود محیط SQL میشه اجرا کرد و نمیشه تو محیط VS به SQL فرستاد من میخوام تمام دستورات بانکی رو از برنامه به بانک بفرستم
نقل قول:
شما خودتان یک ذهنیتی دارید برای کسی که لزوم "همه یا هیچ" را درک نمیکند، مثال ساده ای میزنم تا تداخلش را درک کند:
پولی را میخواهید ااز یک حساب به حساب دیگر منتقل کنید.
در ساده ترین شرایط ممکن و با کمترین عملیات دو کار لازم است...
1) کسر پول از حساب مبداً و 2) افزودن پول به حساب مقصد
حالا فرض کنید کار نیمه انجام شود و فقط یکی از دو عمل فوق موفقیت امیز اجرا شود!
چه میشود؟
اگر 1) انجام شود و 2) انجام نشود (کاری به دلیلش نداریم، به هر دلیل!) پول حقیقی که قبلاً وجود داشته و مالکیت داشته در رایانه از بین میرود
اگر 2) انجام شود و 1) انجام نشود، پولی که وجود نداشته و مالکی ندارد و پشتوانه ای ندارد در رایانه خلق میشود و به وجود می آید.
پس اجرای عملیات فوق مستلزم "همه یا هیچ" است
خوب این هم دقیقا شبیه همون مثال منه
نقل قول:
(یا در خود دات نت هم میتوانید با کلاس System.Data.SqlClient.SqlTransaction مشبه عمل فوق را انجام دهید.)
این بیشتر به درد میخوره ولی باهاش کار نکردم اگه میشه یه کم درباره ش توضیح بدید