Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Ayni satirlari silme
#1
Merhaba

Tabloda bir sütunda ayni satirlari bulup silmek istiyorum

Yardimci olur musunuz yada tavsiyede bulinur musunuz?

İyi calismalar
Cevapla
#2
Bu işi yapmanın bir çok yolu var
önce şuna karar ver bu işlemi delphi içerisinden kodlamı yapacaksın yoksa bir veritabanı ise SQL cümleleri ilemi yapacaksın

Program ile yapacaksan misal
ilk kayda gel, kaydı bir değişkene sakla, kaydın recno karşılığınıda bir değişkene sakla,
sonraki kaydı oku eğer aynı ise sil
DİKKAT = Silme işleminden sonra next kullanma bir kayıt atlamış olursun bunun yerine döngünün başına git.
Dosyanın sonu geldi ise ve ve dosyanın recordcount değeri recno değerine eşit ise çık
değil ise
Tabloadi.recno := Saklalanan recno ve bir sonraki satıra gidip işlemi tekrarla.
Bu dünyada kendine sakladığın bilgi ahirette işine yaramaz. 
Cevapla
#3
Selamlar
Şu şekilde bir sql işini görecektir.

Delete From personel Where Id Not In (Select MAX (Id) From personel Group By ad, Soyad)
Yazılımcı, kahveyi koda çeviren bir organizmadır.
Cevapla
#4
Cevaplar için teşekkürler.
Cevapla
#5
Sql ile biraz kasarsınız fakat for döngüsü en mantikli cozun gibi tek sefer kullanacaksaniz..
// Bilgi paylaştıkça çoğalır.. 

Cevapla
#6
(03-05-2019, Saat: 10:59)mcuyan Adlı Kullanıcıdan Alıntı: Sql ile biraz kasarsınız fakat for döngüsü en mantikli cozun gibi tek sefer kullanacaksaniz..

Ewet 5 dk bekledim sonuç dönmedim . delphi tarafındqa hallettim.
Cevapla
#7
(03-05-2019, Saat: 10:59)mcuyan Adlı Kullanıcıdan Alıntı: Sql ile biraz kasarsınız fakat for döngüsü en mantikli cozun gibi tek sefer kullanacaksaniz..

@mcuyan sql neden kasıyor ben genelde sql üzerinden hallediyorum
nedenini açıklarsanız ona göre bu tür kodları delphi içerisine taşıyalım
delphi tarafının artısı ne oluyor sonuçta işi sql yapıyor
yada sorunu döngü mü çözüyor eğer öyleyse sql tarafında döngü ile yaparsak delphi ile aynı sonuca ulaşırmıyız
burada biraz kafam karıştı
Teşekkürler
Bu dünyada kendine sakladığın bilgi ahirette işine yaramaz. 
Cevapla
#8
@adelphiforumz  kasar konusu sql'e aşina olmayınca yanlış kayıtlar silinir vb. kaygılarla sürekli select cümleleri ile silinecek kayıtların teyidi ile delete sql için emin olma ikileminden bahistir diye değerlendiriyorum hızdan değil.

Tabii ki en hızlısı veritabanının yuvasında gerçekleşen sql sorgusudur.
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif
Cevapla
#9
@mrmarman hocamın dediği gibi.. aynı kayitlari haveing by ile alip sonrasinda silme işi bayagi bi sorunlu.. heleki kayit sayisi milyonlar hatta milyarlar olunca çok sağlam bir sunucya ve saglam bir sabra ihtiyaciniz oluyor..
// Bilgi paylaştıkça çoğalır.. 

Cevapla
#10
"select distinct..." ile dönen sonucu geçici bir tabloya aktardıktan sonra esas tablonun içi boşaltılarak geçici tablodaki distinct kayıtlar tekrar esas tabloya "insert" yapılabilir.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Aynı anda iki Cursor ile çalışma anemos 0 685 24-04-2021, Saat: 01:37
Son Yorum: anemos
  2 farklı pc deki aynı tabloları eşitlemek sadikacar60 3 1.320 29-03-2021, Saat: 20:06
Son Yorum: isocan
  Firebird 2.5 ile 3.0 ı aynı anda çalıştırma MuhammedYasir 8 4.222 12-03-2021, Saat: 10:30
Son Yorum: ozcanm
  Firebird ile aynı server içindeki iki ayrı database deki tablolar arasında select serkansirin001@gmail.com 6 4.734 03-09-2019, Saat: 01:05
Son Yorum: mcuyan



Konuyu Okuyanlar: 1 Ziyaretçi