PDA

View Full Version : مشکل در کار با Sp



hooooman
یک شنبه 11 شهریور 1386, 10:55 صبح
سلام کلا سوالمو اصلاح کردم به این صورت:
فرض کنین مثلا 1 Sp نوشتیم فقط برای select کردن چند تا رکورد, (با SET TRAN ISOLATION LEVEL SERIALIZABLE) حالا نتیجه این Sp رو توی 1 دیتا ست قرار میدیم, میخام بدونم با توجه به اینکه دیتاست غیر متصل هستش این رکوردها در مقابل عملیات بقیه کاربرا چه رفتاری دارن؟ من نتیجه این قفل گذاری رو توی EM خود Sql میدونم , ولی برام گنگه که وقتی نتیجه 1 Query رو به دیتاستی توی VB میفرستیم هنوز این قفلها معتبرن؟

__H2__
یک شنبه 11 شهریور 1386, 11:21 صبح
سلام
یک کم در متوجه شدن صحبتهای شما مشکل دارم!
ولی اگر مشکل شما با Transaction است و نحوه استفاده آن را بلدید و فقط تردیدهایی در کارکرد آن در SP ها دارید، باید بگویم که اداره Transaction را به Net. و SQL Server محول کنید و نمیخواهد نگران باشید، شما با همان روشهای معمولی چه برای دستور مستقیم SQL که به صورت String است و چه بر ای SP ها میتوانید با خیال راحت از Transaction استفاده کنید و چگونگی اش را به داداش بیل بسپارید.!

hooooman
یک شنبه 11 شهریور 1386, 16:20 عصر
سلام
یک کم در متوجه شدن صحبتهای شما مشکل دارم!
ولی اگر مشکل شما با Transaction است و نحوه استفاده آن را بلدید و فقط تردیدهایی در کارکرد آن در SP ها دارید، باید بگویم که اداره Transaction را به Net. و SQL Server محول کنید و نمیخواهد نگران باشید، شما با همان روشهای معمولی چه برای دستور مستقیم SQL که به صورت String است و چه بر ای SP ها میتوانید با خیال راحت از Transaction استفاده کنید و چگونگی اش را به داداش بیل بسپارید.!


ببخشین منظورم اینه که مثلا 1 Sp نوشتیم فقط برای select کردن چند تا رکورد, (SET TRAN ISOLATION ) حالا نتیجه این Sp رو توی 1 دیتا ست قرار میدیم, میخام بدونم با توجه به اینکه دیتاست غیر متصل هستش این رکوردها در مقابل select بقیه کاربرا چه رفتاری دارن؟

hooooman
یک شنبه 11 شهریور 1386, 17:29 عصر
کسی نیست به ما کمک کنه؟!:عصبانی++:

hooooman
دوشنبه 12 شهریور 1386, 09:23 صبح
کسی نیست به ما کمک کنه؟!:عصبانی++:


لطفا کمک Please S.o.S

__H2__
دوشنبه 12 شهریور 1386, 11:31 صبح
سلام
من اصلاً نمی فهمم مشکل کجاست؟!
Transaction تراکنش یا عملیات همه یا هیچ!
عملیاتهای تراکنشی معمولاً در دستورات تغییری DELETE و INSERT و UPDATE استفاده میشود.

مثلاً میخواهید پولی را از حسابی برداشت و به حسای دیگر بریزید.
این عملیات دو قسم دارد.
ارتباط با رایانه مرکزی بانک مبدا و کسر مبلغ
ارتباط با رایانه مرکزی بانک مقصد و افزایش مبلغ
عملیات فوق باید در یک تراکنش امن انجام شود، به طوری که ایجاد هرگونه مشکل در هر یکی از دو عملیات فوق باید موجب لغو کل عملیات شود.
مثلاً اگر پولی برداشت شود ولی عملیات واریز به مشکل بخورد و انجام نشد، پول در شبکه از بین رفته
یا پولی برداشت نشود ولی مبلغ واریز شود، پول مجازی در شبکه به وجود می آید.
در این حالت از تراکنش استفاده میکنند و شیوه استفاده آن در دات نت اینطور است:


Using dbCon As New System.Data.SqlClient.SqlConnection("CONNECTIONSTRING")
Using dbCom As New System.Data.SqlClient.SqlCommand("", dbCon)
dbCon.Open()

Using dbTrans As System.Data.SqlClient.SqlTransaction = dbCon.BeginTransaction
Try
dbCom.Transaction = dbTrans

dbCom.CommandText = "..."
dbCom.CommandType = CommandType.Text
dbCom.ExecuteNonQuery()

dbCom.CommandText = "..."
dbCom.CommandType = CommandType.StoredProcedure
dbCom.ExecuteNonQuery()

'...

dbTrans.Commit()
Catch ex As Exception
dbTrans.Rollback()
End Try
End Using
End Using
End Using

نمیدانم شما چگونه عمل میکنید ولی اگر اینچنین عمل کنید مشکل نخواهید داشت.