Öncelikle herkese kolay gelsin,
Benin yaşamış olduğum sorun şu şekildedir, yardımlarınız için şimdiden teşekkür ederim.
Kullanılan Bileşenler : Edit ve StringGrid. (Delphi 7)
BaslangicNo = 600 000 100 000
BasilacakKart = 1 000 000
SeriNo Kısmı BaslangicNo + 1 olarak 1 milyon kere artacak
Sifre ise 12 Basamaklı olup 1. basamak sabit "6"dır.
Aşağıdaki procedure'yi çalıştırdığımda "out of memory" hatası alıyorum bu sorunun önüne nasıl geçebilirim?
var
i : longint;
x, y : int64;
SeriNo : int64;
Sat : int64;
S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11 : String;
begin
Randomize;
x:=strtoint64(baslangicno.Text);
y:=strtoint64(basilacakkart.Text);
Serino:=strtoint64(baslangicno.Text);
Sat:=1;
Liste.RowCount:=strtoint64(basilacakkart.Text)+1;
for i:=x to x+y do begin
SeriNo:=SeriNo + 1;
Liste.Cells[1,Sat]:=inttostr(SeriNo);
S1:=inttostr(Random(9));
S2:=inttostr(Random(9));
S3:=inttostr(Random(9));
S4:=inttostr(Random(9));
S5:=inttostr(Random(9));
S6:=inttostr(Random(9));
S7:=inttostr(Random(9));
S8:=inttostr(Random(9));
S9:=inttostr(Random(9));
S10:=inttostr(Random(9));
S11:=inttostr(Random(9));
Liste.Cells[2,Sat]:='6' + S1 + S2 + S3 + S4 + S5 + S6 + S7 + S8 + S9 + S10 + S11;
Sat:=Sat+1;
end;
1 Milyon işlemde Out of Memory hatası
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
1 Milyon işlemde Out of Memory hatası
Bildiğim tek şey, hiç bir şey bilmediğim.
Re: 1 Milyon işlemde Out of Memory hatası
büyük ihtimalle rowcount özelliği sınırlı ve tinyint gibi bir rakam, integer sınırlarınız aşıyor olabilir. aşmasa bile o kadar veriyi string grid yönetemez. Ekranda sadece gerekli olan verileri göstermeye çalışın.
Re: 1 Milyon işlemde Out of Memory hatası
Cevabınız için teşekkür ederim ama bütün verileri listelemesi gerekiyor çünkü sayıların aynı olup olmadığı kontrol edilmesi gerekli ki ayrıca 1 milyon zaten sadeleştirilmiş haliydi 
Şimdilik sorunu şöyle çözdüm. Bütün verileri DB ye girip ordan tek tek kontrol ediyorum ki yaklaşık 18 saate 2,5 milyon kayıt işleyebildim bu süreyi hızlandırmak için fikir bekliyorum

Şimdilik sorunu şöyle çözdüm. Bütün verileri DB ye girip ordan tek tek kontrol ediyorum ki yaklaşık 18 saate 2,5 milyon kayıt işleyebildim bu süreyi hızlandırmak için fikir bekliyorum

Bildiğim tek şey, hiç bir şey bilmediğim.
Re: 1 Milyon işlemde Out of Memory hatası
Veritabanı nedir?
Bir kelimenin anlamını öğretsen bile yeter..



Re: 1 Milyon işlemde Out of Memory hatası
verileri string grid'e değil, array'lara yükleyiniz.
Re: 1 Milyon işlemde Out of Memory hatası
ARRAY kullanmak istemiyorsanız.sunye yazdı:yaklaşık 18 saate 2,5 milyon kayıt işleyebildim bu süreyi hızlandırmak için fikir bekliyorum
dbye aktardığınız tabloda aktarmaya baişlamadan önce
AktaranDataset.DisableControls;
yazın
işiniz bittiğinde de
AktarimDataset.EnableControls;
yazın
hızı feci şekilde artacaktır

bir de veritabanınız da transaction olayı var iste.
Aktarmaya başlamadan Transactionu başlatın ve Her 1000 işlemde bir ya da tüm işlemler bittiğinde (birincisini tavsiye ederim) Transactionu commit edin. (AktarimDataset.Transaction.CommitRetaining);
Re: 1 Milyon işlemde Out of Memory hatası
Sorunuma çözüm bulmaya çalışan arkadaşlara yardımlarından teşekkür ederim. Her hangibir Database kullanmıyorum sonuçları doğrudan text dosya olarak kaydediyorum.
@mkysoft verdiğin cevap işimi gördü teşekkür ederim;
Programın diğer zamanlarda da aynı seriyi üretmemesi için DB kullanmak üzere modifiye ediyorum. Ancak her ay gelecek olan 5 milyon kayıt sonrası nasıl bi yavaşlama olur bilmiyorum
@mkysoft verdiğin cevap işimi gördü teşekkür ederim;
Programın diğer zamanlarda da aynı seriyi üretmemesi için DB kullanmak üzere modifiye ediyorum. Ancak her ay gelecek olan 5 milyon kayıt sonrası nasıl bi yavaşlama olur bilmiyorum

Bildiğim tek şey, hiç bir şey bilmediğim.