SQL Server Kill Query (ÇÖZÜLDÜ)

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
cengaver
Üye
Mesajlar: 111
Kayıt: 01 Nis 2014 05:02
Konum: İstanbul

SQL Server Kill Query (ÇÖZÜLDÜ)

Mesaj gönderen cengaver »

Merhaba Arkadaşlar,

KILL PROCESS ile ilgili forumda arama yaptım fakat SQL Server ile ilgili bir örneğe veya detaya rastlayamadım. ( Daha çok windows ile ilgili işlemlerden bahsedilmiş )

Amacım ADO veya UNIDAC kullanarak SQL Server'e gönderdiğim bir Query'i bir butona basıp yarıda kesebilmek. Bunun için ne yapılması gerektiği sanırım üç aşağı beş yukarı herhalde şöyle bir şeydir
  • Sorguyu bir thread üzerinden çalıştırmam lazım
  • Çalıştırdığım sorgunun process ID'sini sorgu işleme girmeden önce öğrenebiliyor olmam lazım
  • Butona bastığım an yeni bir ADOQuery veya UNIQuery üretip "KILL ..." komutunu sunucuya gönderebilmem lazım
Not: SQL Server'da @SPID numarası ile oturum açan kullanıcının işlemlerini KILL komutunu kullanarak sonlandırabiliyoruz. (Umarım doğru biliyorumdur.)

Sizden ricam elinizde örnek kod parçaları varsa buradan paylaşabilir misiniz,
En son cengaver tarafından 01 Eki 2014 02:09 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Kullanıcı avatarı
cengaver
Üye
Mesajlar: 111
Kayıt: 01 Nis 2014 05:02
Konum: İstanbul

Re: SQL Server Kill Query

Mesaj gönderen cengaver »

Hiç kimsede örnek kod yok mu arkadaşlar?
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: SQL Server Kill Query

Mesaj gönderen SimaWB »

ADOQuery kullanacaksanız OnFetchProgress olayını kullanarak query'i iptal edebilirsiniz:
http://stackoverflow.com/questions/1467 ... time-limit

Yada farklı bir yöntem:
http://delphi.cjcsoft.net/viewthread.php?tid=46311
There's no place like 127.0.0.1
Kullanıcı avatarı
cengaver
Üye
Mesajlar: 111
Kayıt: 01 Nis 2014 05:02
Konum: İstanbul

Re: SQL Server Kill Query

Mesaj gönderen cengaver »

SQL Server'de her bağlantı için bir SPID numarası üretildiğini daha önceden de söylemiştim. Bilmediğim şey ise,

Kod: Tümünü seç

"KILL 15"
gibi bir komutu 15 numaralı SPID bağlantısında çalıştıramamammış. İlk iletide bahsettiğim sistematiğe ek olarak ek bir connection nesnesi oluşturup SQL sorgumu o connectiona bağlı query nesnesinde çalıştırarak sorunumu çözdüm, teşekkürler.
Cevapla