PDA

View Full Version : خارج شدن از یک Sub بوسیله دکمه Cancel



omid_reza
دوشنبه 23 شهریور 1388, 19:26 عصر
با سلام به دوستان و خسته نباشید
من یک دستور insert بسیار سنگینی دارم که یک select با رکوردهایی با حدود 9000 تا را یکدفه در جدولی insert می کند
چگونه می توانم از طریق دکمه انصراف sub مربوط به Insert را متوقف کنم ؟
البته از BackgroundWorker استفاده کردم اما برای خارج شدن از آن ظاهرا دستورات قسمت Do باید بصورت حلقه نوشته شده باشد در جالی که دستورت insert من در یک خط نوشته شده است و از طریق DataAdapter
لطفا کمک فوری نمایید ..........
با تشکر
:افسرده::متفکر:

mohammadi4net
سه شنبه 24 شهریور 1388, 02:17 صبح
روشتون از پایه ایراد داره، اگه می خواین رکود درج کنید پس چرا می خواین کنسلش کنید. و ...
بهتره دقیقا توضیح بدین می خواین چکاری انجام بدین تا دیگران روش های بهینه رو بهتون معرفی کنند.
اگه از SQL Server استفاده می کنیم از روال های ذخیره شده و ترانزیشن استفاده کنید. موفق باشید

ArashRoshan
سه شنبه 24 شهریور 1388, 11:40 صبح
خوب شما از Background Worker استفاده نکنید ، خودتون یه Thread بسازید که توی اون راحت هم میتونید Cancel کنید و هم میتونید Pause و Resume انجام بدید .

ali.hojjati
چهارشنبه 25 شهریور 1388, 23:01 عصر
با سلام
اون جوری که من متوجه شدم انصراف دادن در وسط حلقه است. برای این کار چون وقتی برنامه به پردازش میره به دستوراتی که در حین پردازش باشه جواب نمی ده و تا تمومش نکنه برنامه آزاد نمی شه، در نتیجه برنامه به ظاهر هنگ می کنه که برای این کار ابتدا باید از قطعه کد زیر در حلقتون استفاده کنید.

Application.DoEvents()در ادامه یک مقدار عمومی (public) قرار داده و مقدار آن را با کلیک تغییر دهید و در حلقه این مقدار را چک کنید. که هر گاه این مقدار مقدار غیر از پیش فرض بود با توجه به حلقه مورد نظر شما
از کد های زیر می توانید استفاده کنید.


Do
If i <> 0 Then
Exit Do
End If
Loop
For j = 0 To 5
If i <> 0 Then
Exit For
End If
Next