سلام به همه دوستان
من تا به حال موفق به استفاده از Transaction در کار با بانک اطلاعاتی نشدهام. اگه کسی کار کرده یه مثال بفرسته که من هم از آن استفاده کنم. ترجیحا با Data.Odbc باشه بهتره.
با احترام - خدانگهدار
سلام به همه دوستان
من تا به حال موفق به استفاده از Transaction در کار با بانک اطلاعاتی نشدهام. اگه کسی کار کرده یه مثال بفرسته که من هم از آن استفاده کنم. ترجیحا با Data.Odbc باشه بهتره.
با احترام - خدانگهدار
سلامنوشته شده توسط روح اله معینی زاده
من نحوه کارشو در 2003 بلدم. اگه بخواهی در 2003 بهت توضیح میدم.
راستی جدا شما تاحالا در فرستادن QUERY به دیتابیس، از Transaction استفاده نمیکردید؟ اینجوری اگه وسط چندتا INSERT یا UPDATE که به هم مرتبط هستند مشکلی پیش میومد چه کار میکردید؟
در پناه حق موفق و پرتوان
آقای محمدی شاید یک Transaction توی دیتابیس باشه . فکر نکنم حتما لازمه Transaction رو توی برنامه بگذاریم .نوشته شده توسط Hamedm
نظر شما چیه ؟
سلامنوشته شده توسط habedijoo
منظورتون چیه که گفتید "میتونه در دیتابیس باشه"؟
دیتابیس چطوری میتونه QUERYهای مرتبط با هم که ما میفرستیمو تشخیص بده؟
در پناه حق موفق باشید و پرتوان
سلام
SP ها . بنای حرف من استفاده از SP بود .(Store Procedure) از آنجا که گفته میشود SP سرعت و انعطاف پذیری کار رو به شدت بالا می بره پس به نظر من بهتره کارها را حداکثر به سمت سرور ببریم و توی کد فقط اجرا بشن .
البته ، ناگفته نماند که این کار از نظر اقتصادی اصلا توصیه نمیشه و به نوعی نبض کار رو از دست برنامه نویسان در میاره .
سلامنوشته شده توسط habedijoo
من یک INSERT INTO داشتم که حدود ٧٠ فیلد رو در دیتابیس اضافه میکرد. حالا بنظر شما بهتره در این مواقع دستور INSERT INTO رو در SP انجام بدم یا برنامه؟
بنظر من SP برای INSERT INTO و UPDATEهایی که فیلدهای زیادی داره مناسب نیست.
در پناه حق موفق باشید و پرتوان
آخرین ویرایش به وسیله Hamedm : چهارشنبه 28 دی 1384 در 16:33 عصر
سلام
از چه نظر مناسب نیستند .؟ طولانی شدن دستور ؟ یا سرعت ؟
لطفا ذکر کنید .
سلامنوشته شده توسط habedijoo
تاحالا فکر کردید چطوری ٧٠ تا پارامتر رو به SP پاس داد؟ هیچ کدومشون محاسباتی هم نیست که بگیم محاسباتو در SP انجام بدیم.
در پناه حق موفق باشید و پرتوان
سلام
من تا وی بی 6 استفاده می کردم ولی از نسخه دات نت به بعد هیچ وقت استفاده نکردم و چون برنامههایی رو هم که می نوشتم فقط خودم یا یکی دو نفر دیگر بیشتر استفاده نمی کردند، نیاز جدی برای اضافه کردن آن ندیدم و بنابراین دنبالش هم نرفتم.
الان همین جوری توی یه کاری گفتم بذار از اون روش استفاده کنم و چون نمی دونستم که به چه شکل باید باشه گفتم بذار بپرسم شاید دوستان کار کرده باشند و جواب بدن.
بی زحمت شما آقا حامد 2003 رو بنویس انشاءالله توی 2005 هم جواد!!! بده
با احترام - خدانگهدار
dcNorthwind.Open()
Dim transaction1 As SqlClient.SqlTransaction
transaction1 = dcNorthwind.BeginTransaction()
daCustomers.UpdateCommand.Transaction = transaction1
daOrders.UpdateCommand.Transaction = transaction1
Try
daCustomers.Update(dsNorthwind1)
daOrders.Update(dsNorthwind1)
transaction1.Commit()
Catch dbcex As DBConcurrencyException
MessageBox.Show("Update Failed, Concurrency Exception")
transaction1.Rollback()
Catch ex As Exception
MessageBox.Show("Update Failed")
transaction1.Rollback()
Finally
dcNorthwind.Close()
End Try
من از این کد کمک گرفتم در 2005
فکر نکنم با 2003 تفاوت داشته باشه
باید از System.Transactions
استفاده کنی
Using transScope As New TransactionScope() Using connection1 As New SqlConnection(connectString1) ' Opening connection1 automatically enlists it in the ' TransactionScope as a lightweight transaction. connection1.Open() ' Do work in the first connection. ' Assumes conditional logic in place where the second ' connection will only be opened as needed. Using connection2 As New SqlConnection(connectString2) ' Open the second connection, which enlists the ' second connection and promotes the transaction to ' a full distributed transaction. connection2.Open() ' Do work in the second connection. End Using End Using ' Commit the transaction. transScope.Complete()End Using
آخرین ویرایش به وسیله sh : چهارشنبه 28 دی 1384 در 18:21 عصر
با سلام و تشکر از جناب مطهر
جالب بود و به کار آمد و جواب داد.
با احترام- خدانگهدار
این Transaction که میگید یعنی چه و به چکار میاد من که نمفهمم . یکی یکم توضیح بده شاید فهمیدم.