ibdaset1.edit

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Kullanıcı avatarı
diksacli_prens
Üye
Mesajlar: 56
Kayıt: 20 Tem 2004 03:13
Konum: Beşiktas

ibdaset1.edit

Mesaj gönderen diksacli_prens »

arkdaslar 16000 kayıtlı 65 field li bir veri tabanım var
ilk once costumer_id ye gore aratıp istenilen veriyi seciyorum
daha sonra gerekli değişiklikleri yapip
ibdataset1.post dediğimde bi 10 sn bekliyor. kaydı oyle gercekleştiriyor.
veritabınım server uzerinde calişiyor.
yazdıgım kod ta asıgada bu kayıt işlemini ızlandırmamın bir yolu varmı
form1.ibdataset1.Edit;
form1.IBDataSet1FARK.Text := form1.fark.Text;
form1.IBDataSet1INTERVIWER.Text := form1.tckimlikno.Text;
form1.IBDataSet1INTERVIEWDATE.Text := form1.cxmaskedit1.Text;
form1.IBDataSet1TIME2.Text := form1.cxmaskedit2.Text;
form1.IBDataSet1SUBTYPE.Text := form1.cxComboBox2.Text;
form1.IBDataSet1TRADETITLE.Text := form1.unvan.Text;
form1.IBDataSet1SIGNNAME.Text := form1.tabela.Text;
form1.IBDataSet1CLOSED.Text := form1.s15.Text;
form1.IBDataSet1REASON.Text := form1.sebeb.Text;
form1.IBDataSet1TEKELLICANSENR.Text := form1.tekellisansno2.Text;
form1.IBDataSet1TAXOFFICE.Text := form1.VergiDaire.Text;
form1.IBDataSet1TAXNUMBER.Text:= form1.Vergino.Text;
form1.IBDataSet1STREET.Text := form1.Sokak.Text;
form1.IBDataSet1QUERTER.Text := form1.mahalle.Text;
form1.IBDataSet1AVENUE.Text := form1.cadde.Text;
form1.IBDataSet1NUMBER2.Text := form1.binano.Text + ' / ' + form1.Daireno.Text;
form1.IBDataSet1COUNTY.Text := form1.ilce.Text;
form1.IBDataSet1PROVINCE.Text :=Form1.il.Text;
form1.IBDataSet1ANKETNO.Text:= form1.cxComboBox1.Text + form1.anketno.Text;
form1.IBDataSet1TYPEOFTHERETAILER.Text := form2.s14diger.Text;
form1.IBDataSet1SQUAREM.Text := form2.yuzolcum.Text;
form1.IBDataSet1COUNTERNR.Text := kasa.Text;
form1.IBDataSet1LOCATION1.Text := form2.S16diger.Text;
form1.IBDataSet1LOCATION2.Text := form2.S16diger2.Text;
form1.IBDataSet1CLASSIFICATION.Text := form2.s17kisi.Text;
form1.IBDataSet1BATSALES.text := form2.batkar.Text;
form1.IBDataSet1PMISALES.Text := form2.pmikar.Text;
form1.IBDataSet1JTISALES.Text := form2.jtikar.Text;
form1.IBDataSet1TEKELSALES.Text := form2.tekkar.Text;
form1.IBDataSet1ETCSALES.Text := form2.etckar.Text;
form1.IBDataSet1ITCSALES.Text := form2.itckar.Text;
form1.IBDataSet1TOTALCARTON.Text := form2.topkar.Text;
form1.IBDataSet1BATPAKET.text := form2.batkut.Text;
form1.IBDataSet1PMIPAKET.Text := form2.pmikut.Text;
form1.IBDataSet1JTIPAKET.Text := form2.jtikut.Text;
form1.IBDataSet1TEKELPAKET.Text := form2.tekkut.Text;
form1.IBDataSet1ETCPAKET.Text := form2.etckut.Text;
form1.IBDataSet1ITCPAKET.Text := form2.itckut.Text;
form1.IBDataSet1TOTALPAKET.Text := form2.topkut.Text;
form1.IBDataSet1MARLBOROFF.Text := form2.marlnor.Text;
form1.IBDataSet1MARLBOROLIGHT.Text := form2.marllight.Text;
form1.IBDataSet1PARLIAMENT.Text := form2.parlm.Text;
form1.IBDataSet1DAVIDOFF.Text := form2.davi.Text;
form1.IBDataSet1TEKEL2000.Text := form2.tek2000.Text;
form1.IBDataSet1WINSTON.Text := form2.wins.Text;
form1.IBDataSet1MURATTI.Text := form2.murat.Text;
form1.IBDataSet1TEKEL2001.Text := form2.tek2001.Text;
form1.IBDataSet1LM.Text := form2.lm.Text;
form1.IBDataSet1CONTACTNAME.Text := form2.gad.Text;
form1.IBDataSet1CONTACTSURNAME.Text := form2.gsoyad.Text;
form1.IBDataSet1PHONECOD.Text := form2.telkod.Text;
form1.IBDataSet1PHONE.Text := form2.tel.Text;
form1.IBDataSet1AUTHORITY.Text := s23diger.Text;
form1.IBDataSet1KONT1.Text := form2.soru.Text;
form1.IBDataSet1kont2.Text := form2.telefon.Text;
form1.IBDataSet1KONT3.Text := form2.yuz.Text;
form1.IBDataSet1.Post;
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
edit post işlemini ibdatasetle değilde ibquery(veya ibsql) ile yaparsanız hızlanması lazım.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
diksacli_prens
Üye
Mesajlar: 56
Kayıt: 20 Tem 2004 03:13
Konum: Beşiktas

RequestLive

Mesaj gönderen diksacli_prens »

ibquery edit post işlemi için read-only dataset
hatası verdi bende arastırdım
RequestLive özelligini true yapmam gerekiyormus ama ibquerynin özelliklerinde boyle bisey goremedim
normal query de var
Kullanıcı avatarı
diksacli_prens
Üye
Mesajlar: 56
Kayıt: 20 Tem 2004 03:13
Konum: Beşiktas

ibquery

Mesaj gönderen diksacli_prens »

ibqueryden baska önerebileceginiz bişey varmı
her duzeltme işleminde bi 10 sn bekliyo
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
ben ibdateset yerine ibquery kullanın demiyorum.
sadece edit ve post işlemini ibquery(ibsql)ile yapın diyorum.
ibquery nin sql ine update sql i yazacaksın.
ibdataseti edit post yaptığın yerde ibquerynin parametrelerine değerleri aktarıp execute edeceksin.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
diksacli_prens
Üye
Mesajlar: 56
Kayıt: 20 Tem 2004 03:13
Konum: Beşiktas

IBUpdateSQL1

Mesaj gönderen diksacli_prens »

oncellikle bu saatte zaman ayırdıgın icin tesekurler
ibquery ile IBUpdateSQL1 kullanarak 4 sn filen kazanabildim. suan 6 sn bekliyorum.
verdigin cevabı cok net anlamadım.
öncelikle sormak istedigim post ederken bu kadar beklemesi normal mi.
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7603
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Index ve primary key var mı tablonda?

Kolay gelsin.
shadowmann
Üye
Mesajlar: 508
Kayıt: 30 Oca 2004 10:49

Re: ibdaset1.edit

Mesaj gönderen shadowmann »

diksacli_prens yazdı:arkdaslar 16000 kayıtlı 65 field li bir veri tabanım var
ilk once costumer_id ye gore aratıp istenilen veriyi seciyorum
daha sonra gerekli değişiklikleri yapip
ibdataset1.post dediğimde bi 10 sn bekliyor.
Bence hocam alan sayısından ziyade bu kısımda bir sorun var olabilir. Post işleminden önce yaptığın işlemlere bir bakmak lazım.
Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Mesaj gönderen Hakan Can »

Tablonun afterpost vs. eventlerinde ekstra kod falan yoksa yapacak fazla birşey yok. Zira en temel yaklaşımlardan birini ihmal etmişsin. 16000 kayıt 65 alan demek rahat 100-150 bin kayıt demek. Hele birçok büyük alfasayısal alan veya memo alan da tanımlı ise belki çok daha fazla kayıt demek.

Yapman gereken veri girişlerinde kullanıcının karşısına mümkün mertebe az kayıt çıkartmak olmalı. Ama ben mutlaka bu kadar kayıt çıkartmak zorundayım diyorsan yapacak fazla birşeyin yok. Ne kadar uğraşırsan uğraş 3 saniyeye indirirsin süreyi. 16000 kayıt 50000 oldumu yine başa dönersin.

Gerçi CASHED UPDATES veya dbExpress'in APPLYUPDATES gibi yaklaşımları var ama bunlar biraz karmaşık ve farklı çözüm yaklaşımları.

İyi çalışmalar.
shadowmann
Üye
Mesajlar: 508
Kayıt: 30 Oca 2004 10:49

Mesaj gönderen shadowmann »

form1.IBDataSet1PARLIAMENT.Text şeklinde bir kullanımı ilk defa görüyorum. Genelde fieldbyname veya field[] kullanılıyor.
Tablonda primary key yoksa onu ekle.
Mustafa hocam' ın dediği gibi indexler kayıt ekleme işini yavaşlatacağından gereksiz olanları sil.
Google daseninkine benzer sorunu olan birinin mesajına yazılan cevaplar.
Kullanıcı avatarı
NewMember
Üye
Mesajlar: 990
Kayıt: 29 Haz 2005 06:57
Konum: Bursa

Mesaj gönderen NewMember »

IBObject bileşenleri ile post ve select işlemlerinin klasik interbase bileşenlerine göre 3-4 kat hızlandığını söyleyebilirim.Bir zaman firebird bir databasei 1 milyon kayıtta interbase, zeos,ado vede IBObjects bileşenleri ile test etmiştim.Rakamlarla yazamıycam çünkü sonuçları not etmedim ama IBObjects bileşenleri interbase bileşenlerinin 10-15 saniyede döndürdüğü sonucu 1-2 sn de döndürebiliyordu.
Birde onunla dene istersen...
Kullanıcı avatarı
diksacli_prens
Üye
Mesajlar: 56
Kayıt: 20 Tem 2004 03:13
Konum: Beşiktas

Cözüm

Mesaj gönderen diksacli_prens »

arkadaslar gosterdiginiz ilgiden dolayı herkeze cok tesekkur ederim.
ben post işlemin den sonra hemen
ibquery1.close;
ibquery1.sql.clear;
ibquery1.sql.tex:= 'select * from data';
ibquery1.close;
seklinde datanın tümünü cagiriyordum. buda işlemi yavaslatıyormus.
ayrıca sizlerin de soyledigi gibi ibdataset`e ziyaden ibquery ve ibubdataesql işlemi ile yapmak gozle gorulur bi hiz sagliyor.
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Her kayıttan sonra kapatıp açmak doğal olarak belli bir zaman alacaktır. Ayrıca sadece açmak fazla zaman almasa da açılan sorguda son kayıta ulaşmak veritabanından tüm kayıtları çekmek için çok daha fazla zamana ihtiyaç duyacaktır :idea:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
meron06
Üye
Mesajlar: 393
Kayıt: 15 Eki 2005 04:23

Mesaj gönderen meron06 »

diksaçlı prens kardeş senin bi kaydı update etme yöntemin yanlış.benim veri tabanımdaki tablolarımdan birinde 270 bin kaydım field sayım 57 ve vt ye bağlı 49 tane client var.benim clientlerden yaptığım insert update ve delete işlemlerim 2-3 sn sürüyor o da en yavaş client makinamda .sana tavsiyem insert update ve delete işlemlerini ibqueryler içine yazdığın sorgularla yap yada sp lerle yap.ben sp lerle yapıyorum şimdiye kadar bi yavaşlıkla karşılaşmadım.
Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Mesaj gönderen Hakan Can »

meron06 yazdı:diksaçlı prens kardeş senin bi kaydı update etme yöntemin yanlış.benim veri tabanımdaki tablolarımdan birinde 270 bin kaydım field sayım 57 ve vt ye bağlı 49 tane client var.benim clientlerden yaptığım insert update ve delete işlemlerim 2-3 sn sürüyor o da en yavaş client makinamda .sana tavsiyem insert update ve delete işlemlerini ibqueryler içine yazdığın sorgularla yap yada sp lerle yap.ben sp lerle yapıyorum şimdiye kadar bi yavaşlıkla karşılaşmadım.
Her kullanıcı 270 bin kaydı karşısında toplu olarak görürken mi oluyor bu olay?

İyi çalışmalar.
Cevapla