Sorgu çalışırken iptal etme
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 50
- Kayıt: 12 Haz 2003 09:53
- Konum: www.mussimsek.com
Sorgu çalışırken iptal etme
Merhaba
AdoQuery1.Close;
AdoQuery1.SQL.Text:='SELECT * FROM musteri';
AdoQuery1.Open;
Arkadaşlar yukarıdaki kod çalışırken bildiğiniz gibi kayıt sayısına bağlı olarak işlem uzun sürebiliyor.
Bu sorgu çalışırken bir butona basınca user sorguyu nasıl durdurabilir ?
Bu arada sorgu durduğu anda o ana kadar listeleyebildiği kadar kayıdı listeleyebilir mi ?
Teşekkürler...
AdoQuery1.Close;
AdoQuery1.SQL.Text:='SELECT * FROM musteri';
AdoQuery1.Open;
Arkadaşlar yukarıdaki kod çalışırken bildiğiniz gibi kayıt sayısına bağlı olarak işlem uzun sürebiliyor.
Bu sorgu çalışırken bir butona basınca user sorguyu nasıl durdurabilir ?
Bu arada sorgu durduğu anda o ana kadar listeleyebildiği kadar kayıdı listeleyebilir mi ?
Teşekkürler...
Günaydın
Eski programlama dilinde while döngülerinde olsun for döngülerinde olsun dosya tarama işlemlerinde bu olayı çok rahat bir şekilde yapıyorduk ama SQL zaten olduğundan daha hızlı ve performanslı çalıştığı için bu tip olaya hiç gerek duymadık
Ayrıca şu yöntemi de kullanabilirsin ben bunu hiç uygulamadım şimdi tasarlıyorum hatam olabilir.
İlk önce tablondaki toplam kaydı bulursun bulunan kaydı 3 parçaya bölersin örneğin 100 kayıt bulundu 1.bölüm = 30, 2.bölüm = 30, 3.bölüm = 30, kalan bölüm = 10 bunları ayrı ayrı değişkenlere atarsın ve SQL içinde ilk önce ilk bölümünü sonra 2.nciyi sonra 3.ncüyü en son olarakda kalan bölümü tarattırırsın bunları bir döngü içine veya koşul içine alırsın ve koşul ve döngü çin sql llerin arasına tuş kombinasyonu yaparsın ve döngüyü kırdırıp veya koşul sorgulatmasında SQL lerin hepsine çalışma iznini kullanıcıya bırakırsın.
Kolay Gelsin
Eski programlama dilinde while döngülerinde olsun for döngülerinde olsun dosya tarama işlemlerinde bu olayı çok rahat bir şekilde yapıyorduk ama SQL zaten olduğundan daha hızlı ve performanslı çalıştığı için bu tip olaya hiç gerek duymadık
Ayrıca şu yöntemi de kullanabilirsin ben bunu hiç uygulamadım şimdi tasarlıyorum hatam olabilir.
İlk önce tablondaki toplam kaydı bulursun bulunan kaydı 3 parçaya bölersin örneğin 100 kayıt bulundu 1.bölüm = 30, 2.bölüm = 30, 3.bölüm = 30, kalan bölüm = 10 bunları ayrı ayrı değişkenlere atarsın ve SQL içinde ilk önce ilk bölümünü sonra 2.nciyi sonra 3.ncüyü en son olarakda kalan bölümü tarattırırsın bunları bir döngü içine veya koşul içine alırsın ve koşul ve döngü çin sql llerin arasına tuş kombinasyonu yaparsın ve döngüyü kırdırıp veya koşul sorgulatmasında SQL lerin hepsine çalışma iznini kullanıcıya bırakırsın.
Kolay Gelsin
Böyle birşey açıkcası hiç duymadım. Olamaz dememekle birlikte sql veritabanları için select işlemi bir transaction olduğu için yarım transaction çalışmanın da olamayacağı için bu istediğinizin olamayacağını düşünüyorum. SQL server'ların güvenli olmalarındaki temel yapı taşı özelliklerinden birisidir zaten bir transaction ya çalışır ya da çalışmaz tam ortada elektrik kesilse bile ya commit edilmiştir ya da edilmemiştir. Bu yüzden ortadan kesilemeyeceğini düşünüyorum.
Fakat mesela Sybase'de ben şunu yapabiliyorum. Interactive SQL penceresinde yazdığım bir sorgunun sonucu belki de hatalı yzamamdan dolayı veya çok data olmasından doyaı bir şekilde uzarsa durdurabiliyorum. Fakat bunun sonucu olarak sorgunun çalışması iptal edilyor ve hiç bir sonuç gelmiyor....
Fakat mesela Sybase'de ben şunu yapabiliyorum. Interactive SQL penceresinde yazdığım bir sorgunun sonucu belki de hatalı yzamamdan dolayı veya çok data olmasından doyaı bir şekilde uzarsa durdurabiliyorum. Fakat bunun sonucu olarak sorgunun çalışması iptal edilyor ve hiç bir sonuç gelmiyor....
Eğer SQL Serverda Query Analyzer'da delete,insert veya update yapılırken iptal düğmesine basılırsa işlemi yapmamşı gibi iptal eder ama select çalıştırılırsa tamamlamadan iptal denilirse o ana kadar sorguladığı şeyleri getiriyor. Ama dediğim gibi Query Analyzer'da oluyor bu Delphi'de aynı şeyi nasıl yaparsın bilemiyorum.
-
- Üye
- Mesajlar: 50
- Kayıt: 12 Haz 2003 09:53
- Konum: www.mussimsek.com
Allah razı olsun bilader,
Kılavyemin tuşları silindi, sorunlarınıza cevap aldığınızda akibetleri burayada yazın diye.
Bu cevapları ilerde bir code Bank gibi bişi yapıcaz işallah. Bu herkez için faydalı olacak. Bu proje gerçekleşmese bile en azından burada yazılı olacak ve üye sayımıza göre en azından 50-100 kişinin dağarcığına birşeyler eklenmiş olur.
Kolay gele
Kılavyemin tuşları silindi, sorunlarınıza cevap aldığınızda akibetleri burayada yazın diye.
Bu cevapları ilerde bir code Bank gibi bişi yapıcaz işallah. Bu herkez için faydalı olacak. Bu proje gerçekleşmese bile en azından burada yazılı olacak ve üye sayımıza göre en azından 50-100 kişinin dağarcığına birşeyler eklenmiş olur.
Kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Al benden de o kadar,
Bunu ben de yeni öğrendim
Denemenin sonucunu döndürdüğün için ve fikri ortaya atan Adminimize ve diğer tüm katılımcılara söylüyorum. Allah razı olsun 
Kolay Gelsin
Bunu ben de yeni öğrendim


Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/