الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سؤال: خاصية transaction استخدامها لعدة جمل SQL

مغلق
بدأه Romantic_touch في 26 نوفمبر 2005 · 2 رد · 794 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

اخواني الكرام لدي كود يقوم بقرأة معلومات من عدة جداول بجمل منفصلة عن بعض اي ان كل جملة موجودة في sub او function والذي اقوم به هو استدعاء لهذه الsub و function كلا على حده وتقوم كل واحه منها بارجاع معلومات لي اقوم بتخزينها في ملف خارجي من نوع XML واقوم باضافة معلومات على السجلات التي اقوم بقرائتها اي اقوم بعمل جمل من نوع update او insert في نق الجدول او جدول اخر, فما اريده هو الاتي:

ان التغيرات التي اجريها على الجداول بعد قراءة البيانات منها لا تحدث الا بعد ان أتأكد من ان ملف xml حدث دون خطأ

وانا اعلم انه يجب استخدام خاصية transaction - begin - begin - rollback ولكن كيف ذلك؟؟ حيث ان المشكلة ان عملي مقسم كله sub و function يعني يجب ان يكون تعريف جملة transaction على مستوى الفورم حاولت معها ولم اتمكن من حلها

في الى حل منكم ؟

<span style='color:green'>سؤل ابن عباس عن علمه كيف جمعه فقال :( أوتيت لسانا سؤولا وقلبا عقولا)</span>

#2

التعامل مع التنقلات Transaction

تستخدم هذه التقنية غالبا عند عملية تحديث مجموعة سجلات مرتبطة مع بعضها فاذا فشل تحديث احدهم يتم الغاء العملية بالكامل

لكائن الاوامر الخاصية Transaction حيث نقوم باسناد كائن التنقل اليها ويتم انشاء الكائن باستدعاء الطريقة BeginTransaction() لكائن الاتصال

يتم استخدام احدى الطريقتين Commit او Rollback الاولى للموافقة ويتم حفظ نتائج الاستعلام والثانية للتراجع فى حاله عدم تحقق شرط معين او حدوث خطاء

...
cn.Open()
Dim txn As OleDbTransaction = cn.BeginTransaction()
Dim strSQL As String = "INSERT INTO Customers (...) VALUES (...)"
Dim cmd As New OleDbCommand(strSQL, cn, txn)
Dim intRecordsAffected As Integer = cmd.ExecuteNonQuery()
If intRecordsAffected = 1 Then
   Console.WriteLine("Update succeeded")
   txn.Commit()
Else
   'Assume intRecordsAffected = 0
   Console.WriteLine("Update failed")
   txn.Rollback()
End If

هذا توضيح بسيط لفكرة عمل Transaction

استخدمها فى اجراءاتك

ووضح استفسارك اكثر

ايضا يوجد فئة جديدة فى .netfram work 2

هى Transaction

ارفقت لك كتيب يلقى الضوء عليها

بالتوفيق

WillyDev_IntroducingSystemTransactions.rar

VB.NET and C# Comparison

http://www.harding.edu/fmccown/vbnet_csharp_comparison.html

002.gif

=-=-=-=-=-=-=
ذو العلم يشقى فى النعيم بعلمه .:. واخو الجهالة فى الشقاوة ينعم
=-=-=-=-=-=-=
يا من بدنياه اشتغل . قد غره طول الأمل . فالموت يأتى بغتة . والقبر صندوق العمل
=-=-=-=-=-=-=
ان لم تستطع ان تجد ما تفعله فافعل ما لم تسطع ان تجده

screen_shot_2011-05-19_at_12.44.49_pm.pn

#3

الف شكر اخوي

زبطت معايا وانا قمت بعمل الconnection مشترك لكل العمليات ولكل command عملت له ransaction وجدة مشتركة للكل وزبطت معايا

:)

<span style='color:green'>سؤل ابن عباس عن علمه كيف جمعه فقال :( أوتيت لسانا سؤولا وقلبا عقولا)</span>

هذا الموضوع مغلق.

مواضيع مشابهة