PDA

View Full Version : سوال: ثبت اطلاعات در بانک اطلاعاتی



robodanial
شنبه 12 اردیبهشت 1388, 18:47 عصر
صورت مسئله : فرض کنید من چند تا جدول مرتبط به هم به اسم های x و y و z دارم که اطلاعاتم ابتدا در اولی و دومی و بعد هم در سومی ذخیره میشه هالا اگر موقه ثبت اطلاعات برقا بره یا شبکه قطع بشه اطلاعات به هم مرتبط من ناقص ذخیره می شه توی سی شارپ دستوراتی داریم که میتونه وضعیتی برای ما به وجود بیاره که این اطلاعات در صورت بروز چنین مشکلاتی به طور قطعی ثبت بشوند یا نشوند. (ناقص ذخیره نشوند)
F1 = آیا توی دلفی هم چنین دستوراتی برای مقابله با این مشکل هم داریم ؟

shervin farzin
شنبه 12 اردیبهشت 1388, 20:03 عصر
سلام

آیا توی دلفی هم چنین دستوراتی برای مقابله با این مشکل هم داریم ؟
بله دوست من ، شما ميتونيد از Transaction براي اجراء دستوراتتون استفاده كنيد . البته اين
فرايند منحصر به دلفي نيست و در #C هم همين طرح رو بايد پياده سازي كنيد ، شايد فقط با Syntax متفاوت .

ADOConnection1.BeginTrans;
try
// Some code for insertion on table1
// Some code for insertion on table2
// Some code for insertion on table3
ADOConnection1.CommitTrans;
except
ADOConnection1.RollbackTrans;
end;

به اين ترتيب يا تمام فرايندهاي ثبت اطلاعات با موفقيت انجام خواهد شد ، يا هيچ كدوم در Database اعمال نميشند .
موفق باشيد .

bmanfy
یک شنبه 13 اردیبهشت 1388, 21:05 عصر
با استفاده از دستورات Sql هم براتون مقدور هستش .


Begin Tran
-- Inserts , Updates , ...
Commit | RollBack

این شکل کلی دستور تو Sql هستش .
البته وقتی در حالت یک تراکنش قرار میدید اگر در هر حالتی انجام دستورلات کامل نشه خود به خود دیکه بر میگردونه . یهنی به عبارتی فقط کفایت میکنه که شما یک تراکنش ایجاد کنید و در انتهاش یک Commit (برای ثبت نهایی) , میبشه گفت در صورت بروز مشکل خودش عمل RolBack رو انجام میده . که میشه این چنین نوشت .


Begin Tran
-- Inserts , Updates , ....
Commit