شروع معامله یک معامله را شروع می کند که مجموعه ای از دستورات است که به عنوان یک واحد مدیریت می شود. یک معامله می تواند انجام شود یا متعهد شود. همچنین می تواند کاملا لغو شود یا به عقب برگردانده شود تا هر داده ای که توسط تراکنش تغییر کرده است به حالت اولیه خود بازگردد. زیرا دستورات در یک تراکنش به عنوان یک واحد مدیریت می شوند یا همه دستورات متعهد می شوند یا همه دستورات به عقب برمی گردند.
به طور پیش فرض, اگر هر دستور در معامله تولید خطا, معاملات به طور خودکار نورد. برای تغییر این رفتار می توانید از پارامتر برگشت برگشت استفاده کنید.
سیستم های مورد استفاده در یک تراکنش باید برای پشتیبانی از تراکنش ها طراحی شوند. سیامدلت هایی که از تراکنش ها پشتیبانی می کنند دارای پارامتر انتقال استفاده هستند. برای انجام معاملات در یک تامین کننده باید از معاملات پشتیبانی کند. ویندوز پاور شل رجیستری در ویندوز ویستا و نسخه های بعدی سیستم عامل ویندوز از تراکنش ها پشتیبانی می کند. شما همچنین می توانید از مایکروسافت استفاده کنید.پوسته قدرت.دستورات.مدیریت.تراکنش کلاس رشته شامل عبارات در معاملات در هر نسخه از سیستم ویندوز است که پشتیبانی از ویندوز پاورشل. سایر تامین کنندگان پاورشل ویندوز نیز می توانند از تراکنش ها پشتیبانی کنند.
فقط یک معامله می تواند در یک زمان فعال باشد. اگر شما شروع یک جدید, معامله مستقل در حالی که یک معامله در حال پیشرفت است, معامله جدید معامله فعال می شود, و شما باید مرتکب و یا عقب معامله جدید قبل از شما هر گونه تغییر به معامله اصلی.
استارت تراکنش یکی از مجموعهای از سیمدلتها است که از ویژگی تراکنشها در ویندوز پاورشل پشتیبانی میکند. برای اطلاعات بیشتر ببین درباره_تجارت ها.
مثالها
مثال 1: شروع و بازگرداندن معامله
این دستورات شروع می شوند و سپس یک معامله را باز می گردانند. چون معامله نورد است, هیچ تغییری در رجیستری ساخته شده.
مثال 2: شروع و تکمیل معامله
این دستورات شروع می شوند و سپس یک معامله را تکمیل می کنند. هیچ تغییری به رجیستری ساخته شده تا زمانی که دستور کامل معامله استفاده شده است.
مثال 3: از تنظیمات برگشت مختلف استفاده کنید
این مثال اثر تغییر مقدار پارامتر برگشتی را نشان می دهد.
در اولین مجموعه از دستورات, شروع معامله می کند رول بک استفاده نمی کندترجیح . در نتیجه از مقدار پیش فرض (خطا) استفاده می شود. هنگامی که یک خطا در یک دستور معامله رخ می دهد, به این معنا که, مسیر مشخص وجود ندارد, معامله به طور خودکار نورد تماس.
در مجموعه دوم از دستورات, شروع معامله با استفاده از رول بک ترجیحا با ارزش هرگز. در نتیجه, زمانی که یک خطا در یک دستور معامله رخ می دهد, معامله هنوز فعال است و می تواند با موفقیت انجام.
زیرا اکثر تراکنش ها باید بدون خطا انجام شوند, معمولا مقدار پیش فرض برگشت برگشت ترجیح داده می شود.
مثال 4: در حالی که تراکنش در حال انجام است از این سیستم مدیریت محتوا استفاده کنید
این مثال اثر با استفاده از شروع معامله در حالی که یک معامله در حال انجام است را نشان می دهد. اثر بسیار شبیه به پیوستن به معامله در حال پیشرفت است.
اگر چه این یک دستور ساده شده است, این سناریو اغلب رخ می دهد که معامله شامل در حال اجرا یک اسکریپت است که شامل یک معامله کامل.
اولین دستور شروع معامله معامله شروع می شود. اولین دستور مورد جدید بخشی از معامله است.
دستور دوم شروع معامله یک مشترک جدید را به معامله اضافه می کند. دستور دریافت معامله در حال حاضر یک معامله با تعداد مشترکین 2 را برمی گرداند. دومین دستور مورد جدید بخشی از همان معامله است.
هیچ تغییری به رجیستری ساخته شده تا زمانی که کل معامله کامل شده است. برای تکمیل معامله, شما باید دو دستور کامل معامله را وارد کنید, یکی برای هر مشترک. اگر شما به عقب معامله در هر نقطه, تمام معامله خواهد بود برای هر دو مشترک نورد.
مثال 5: شروع یک معامله مستقل در حالی که یکی در حال انجام است
این مثال اثر استفاده از پارامتر مستقل شروع معامله برای شروع یک معامله در حالی که معامله دیگری در حال انجام است را نشان می دهد. در این مورد, معامله جدید بدون تاثیر معامله اصلی نورد.
اگر چه معاملات منطقی مستقل هستند, چرا که تنها یک معامله را می توان در یک زمان فعال, شما باید به عقب و یا مرتکب جدیدترین معامله قبل از از سرگیری کار بر روی معامله اصلی.
اولین مجموعه از دستورات شروع می شود یک معامله. دستور مورد جدید بخشی از اولین معامله است.
در مجموعه دوم از دستورات, دستور شروع معامله با استفاده از پارامتر مستقل. دستور دریافت معامله است که به شرح زیر نشان می دهد شی معامله برای معامله فعال, که یکی از جدیدترین است. تعداد مشترکین برابر است با 1, که نشان می دهد که معاملات نامربوط هستند.
هنگامی که معامله فعال است با استفاده از یک دستور خنثیسازی معامله نورد, معامله اصلی دوباره فعال می شود.
دستور مالکیت جدید که بخشی از تراکنش اصلی است بدون خطا به پایان می رسد و معامله اصلی را می توان با استفاده از دستور کامل تراکنش انجام داد. در نتیجه رجیستری تغییر می کند.
مثال 6: دستوراتی را اجرا کنید که بخشی از معامله نیستند
این مثال نشان می دهد که دستوراتی که در حین انجام تراکنش ارسال می شوند می توانند در تراکنش گنجانده شوند یا شامل نشوند. فقط دستوراتی که از پارامتر معامله استفاده می کنند بخشی از معامله هستند.
دستورات اول و سوم مورد جدید از پارامتر انتقال استفاده استفاده می کنند. این دستورات بخشی از معامله است. زیرا دومین دستور مورد جدید از پارامتر استفاده از تراکنش استفاده نمی کند, بخشی از تراکنش نیست.
اولین دستور دریافت کودک اثر را نشان می دهد. دستور دوم مورد جدید بلافاصله تکمیل می شود اما دستورات اول و سوم مورد جدید تا زمانی که معامله انجام نشود موثر نیستند.
دستور کامل تراکنش معامله را انجام می دهد. در نتیجه دستور دوم دریافت کودک نشان می دهد که همه موارد جدید به رجیستری اضافه می شوند.
مثال 7: معامله ای را که در یک زمان مشخص به پایان نمی رسد بازگردانید
این دستور با استفاده از پارامتر ایست شروع معامله برای شروع یک معامله است که باید در عرض دو دقیقه تکمیل شود. اگر معامله به پایان رسید نه زمانی که زمان از منقضی, نورد به طور خودکار.
با اتمام زمان به شما اطلاع داده نمی شود اما ویژگی وضعیت شی تراکنش روی رولل بک تنظیم شده و دستوراتی که از پارامتر انتقال استفاده استفاده می کنند با شکست مواجه می شوند.
پارامترهای
- تایید
از شما درخواست برای تایید قبل از اجرای سی ام دیلت.
نوع: | سوییچپارامتر |
نام مستعار: | cf |
موقعیت: | به نام |
مقدار پیشفرض: | غلط |
پذیرش ورودی خط لوله: | غلط |
شخصیت های کارت وحشی را بپذیرید: | غلط |
- مستقل
نشان می دهد که این سی ام دیلت تراکنشی را شروع می کند که مستقل از هرگونه تراکنش در حال انجام است. به طور پیش فرض, اگر شما با استفاده از شروع معامله در حالی که معامله دیگری در حال انجام است, یک مشترک جدید به معامله در حال پیشرفت اضافه. این پارامتر اثر تنها زمانی که یک معامله در حال حاضر در حال انجام در جلسه.
به طور پیش فرض, در صورت استفاده از شروع معامله در حالی که یک معامله در حال انجام است, شی معامله موجود مورد استفاده مجدد قرار است و تعداد مشترک افزایش می یابد. اثر بسیار شبیه به پیوستن به معامله اصلی است. دستور واگرد معامله رول تماس کل معامله. برای تکمیل معامله, شما باید یک دستور کامل معامله برای هر مشترک را وارد کنید. زیرا اکثر معاملات است که در حال پیشرفت در همان زمان مرتبط هستند, به طور پیش فرض برای اکثر استفاده کافی است.
اگر پارامتر مستقل را مشخص کنید این سیستم یک تراکنش جدید ایجاد می کند که می تواند بدون تاثیر بر تراکنش اصلی تکمیل یا لغو شود. اما, چرا که تنها یک معامله می تواند فعال در یک زمان, شما باید کامل و یا عقب معامله جدید قبل از از سرگیری کار بر روی معامله اصلی.
نوع: | سوییچپارامتر |
موقعیت: | به نام |
مقدار پیشفرض: | هیچکدام |
پذیرش ورودی خط لوله: | غلط |
شخصیت های کارت وحشی را بپذیرید: | غلط |
-برگشت برگشت
شرایطی را که معامله به طور خودکار بازگردانده می شود مشخص می کند. مقادیر قابل قبول برای این پارامتر عبارتند از:
- خطا معامله نورد به طور خودکار اگر یک خطا فسخ و یا غیر فسخ رخ می دهد.
- در صورت بروز خطای فسخ معامله به طور خودکار بازگردانده می شود.
- هرگز معامله هرگز به طور خودکار باز نمی گردد.
مقدار پیش فرض خطا است .
نوع: | رولبک |
ارزشهای پذیرفته شده: | خطا, خاتمه دهندهرگز |
موقعیت: | به نام |
مقدار پیشفرض: | هیچکدام |
پذیرش ورودی خط لوله: | غلط |
شخصیت های کارت وحشی را بپذیرید: | غلط |
- اتمام وقت
مشخص حداکثر زمان, در دقیقه, که معامله فعال است. هنگامی که زمان از انقضا, معامله به طور خودکار نورد تماس.
به طور پیش فرض هیچ وقت برای تراکنش هایی که در خط فرمان شروع می شوند وجود ندارد. هنگامی که معاملات توسط یک اسکریپت شروع, به طور پیش فرض زمان از است 30 دقایق.