firebird 2.04 veritabanı kullanıyorum.
şu an itibariyle 190.000 kayıt girildi.
tabloda adisoyadi,yil,kupeno2 alanlarını indexledim.
ben bu tabloya ard arda 100 adet kayıt girmek için şu kodu kullanıyorum.
Kod: Tümünü seç
progressbar1.Visible:= true;
progressbar1.max:= strtointdef(Edit2.Text,0);
ibtable1.Open;
ibdataset1.close;
ibdataset1.SelectSQL.Clear;
ibdataset1.SelectSQL.Add('Select ID,UYENO,TCKIMLIK,ADISOYADI,KOY,BIRLIKUYENO,KUPENO,KUPENO2,CINSI,ISLEMYILI,ILCEADI,ILCENO From KUPE');
ibdataset1.SelectSQL.Add('Where UYENO = '''+Edit3.text+'''');
ibdataset1.SelectSQL.Add('and ILCENO = '''+frmAna.Label20.Caption+'''');
ibdataset1.Open;
ibdataset1.Last;
kontrol := strtointdef(Edit2.Text,0);
kupeno:= strtofloat(Edit1.Text);
sayi:=1;
while sayi <= kontrol do
begin
Edit6.Text:= '';
Edit6.Text:= floattostr(kupeno);
Edit6.Text:= Formatfloat('000000000000',strtofloatdef(edit6.Text,0));
ibdataset1.Append;
ibdataset1.Edit;
ibdataset1UYENO.AsInteger:= strtoint(Edit3.Text);
ibdataset1TCKIMLIK.AsString:= Edit4.Text;
ibdataset1ADISOYADI.AsString:= Edit5.Text;
ibdataset1BIRLIKUYENO.AsString:= Edit7.Text;
ibdataset1KOY.AsString:= Edit8.Text;
ibdataset1KUPENO.AsString:= ibtable1KUPE_KODU.AsString+ibtable1IL_KODU.AsString+Edit6.Text;
ibdataset1KUPENO2.Value:= kupeno;
ibdataset1CINSI.AsString:= combobox1.Text;
ibdataset1ISLEMYILI.AsInteger:= strtoint(Combobox2.Text);
ibdataset1ILCEADI.AsString := frmAna.Label26.Caption;
ibdataset1ILCENO.AsInteger := strtoint(frmAna.Label20.Caption);
ibdataset1.Post;
sayi:=sayi+1;
kupeno:=kupeno+1;
progressbar1.Position:= sayi;
end;
ama kayıt sayısı arttıkça 3 - 4 dk lık bir zamanda ancak 100 kayıt ekleyebiliyor. 500.000 civarı kayıt girilmesi planlanıyor.
kayıt ekleme zamanını en minumuma nasıl indirebilirim.
iyi çalışmalar