blob alana büyük dosyaları gönderirken gönderme durumunu nasıl hesaplayabiliriz?
Yani bir progressbar ile dosyanın ne kadar sürede gönderileceğini hesaplayıp gönderme durumunu göstermek istiyorum..
Yardımcı olursanız sevinirim.
Blob alana dosya gönderme durumu
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
- fesiharslan
- Üye
- Mesajlar: 591
- Kayıt: 20 Eki 2006 11:37
- Konum: Erzurum
- İletişim:
- Callback fonksiyonları terimi bu istediğin işlemi kapsıyor. Bir işlem için tabiri doğruysa sazı eline alan veritabanı fonksiyonu, işlem süresince mesaj yayını yapar. Bir nevi OnProgressChange diye bir event varmış da bu tetikleniyormuş gibi.
- Veritabanı belirtmediğin için kullandığım ADO için cevap vereyim.
- AdoQuery'de bir OnFetchProgress diye bir event vardır. Minik bir ön hazırlıkla bunu aktifleştirebilirsin.
- Örnek Form OnCreate olayında veya direkt AdoQuery üzerinde Property Editor'den şunları yap.
- Artık işlem hazır... Şimdi AdoQuery'nin OnFetchProgress olayına ilişkin procedure aç ve aşağıdaki gibi yaz.
- Veritabanı işlemini bir button'a koy ve yap. İşlem boyunca % olarak gelişmeler gözler önüne serilecektir.
- Başarılar...
- Veritabanı belirtmediğin için kullandığım ADO için cevap vereyim.
- AdoQuery'de bir OnFetchProgress diye bir event vardır. Minik bir ön hazırlıkla bunu aktifleştirebilirsin.
- Örnek Form OnCreate olayında veya direkt AdoQuery üzerinde Property Editor'den şunları yap.
Kod: Tümünü seç
procedure TForm1.FormCreate(Sender: TObject);
begin
AdoQuery1.CursorLocation := clUseClient;
AdoQuery1.CursorType := ctStatic;
AdoQuery1.ExecuteOptions := [eoAsyncFetchNonBlocking];
end;
Kod: Tümünü seç
procedure TForm1.ADOQuery1FetchProgress(DataSet: TCustomADODataSet;
Progress, MaxProgress: Integer; var EventStatus: TEventStatus);
begin
Caption := 'Percent complete: ' +
IntToStr(Trunc(Progress / MaxProgress * 100)) + '%';
// Hatta bir progressbar varsa formunda aşağıdaki gibi yap güzel olur...
ProgressBar1.Min := 0;
ProgressBar1.Max := MaxProgress;
ProgressBar1.Position := Progress;
Application.ProcessMessages;
end;
- Başarılar...
- fesiharslan
- Üye
- Mesajlar: 591
- Kayıt: 20 Eki 2006 11:37
- Konum: Erzurum
- İletişim: