मैं एकाधिक डेटाबेस पर डेटा परिवर्तन कर रहा हूं, और मैं एक लेनदेन को कार्यान्वित करना चाहता हूं जिसमें सभी परिवर्तन शामिल होंगे।एकाधिक डेटाबेस पर लेनदेन कार्यान्वित करना
try
{
db[1].begintransaction();
db[1].ExecuteNonQuery();
db[2].begintransaction();
db[2].ExecuteNonQuery();
...
db[N].begintransaction();
db[N].ExecuteNonQuery();
// will execute only if no exception raised during the process
for (int a = 0; a < N; a++)
{
db[a].Commit();// what if there is an error/exception here
}
}
catch
{
for (int a = 0; a < N; a++)
{
db[a].RollBack();
}
}
समस्या यह है कि इसके बाद के संस्करण बुरी तरह विफल हो जाएगा एक अपवाद (टिप्पणी देखें) एक Commit()
दौरान होता है अगर:
यह मैं वर्तमान में क्या है। क्या इसे पूरा करने का कोई बेहतर तरीका है?
नोट: यह वास्तविक कोड नहीं है। ive ने स्पष्टता के लिए इसे महत्वपूर्ण रूप से संशोधित किया –
अरे मुझे एक ही समस्या है ... और मेरे डेटाबेस या तो माइस्क्ल और एसक्यूएल सर्वर हो सकते हैं ... क्या यह लेनदेनस्कोप के साथ काम करेगा? –