Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.10.30;
Скачать: [xml.tar.bz2];

Вниз

ProgressBar во время SQL запроса.   Найти похожие ветки 

 
Данила   (2003-10-09 13:18) [0]

Мастера! :)
Есть база на access"e. Юзаю ADO. Как "запустить" progressbar пока идет выборка(select ...) по таблице?


 
Данила   (2003-10-09 13:49) [1]

Неужели никто не знает ? Абыдна :(


 
stone   (2003-10-09 13:50) [2]

см. в справке примеры по OnFetchProgress


 
Danilka   (2003-10-09 13:51) [3]

никак нельзя.
ты отдаешь запрос серверу, а от него уже получаешь результат запроса, что там он делает у себя унутрях он не говорит.


 
Danilka   (2003-10-09 14:00) [4]

[2] stone © (09.10.03 13:50)
?
Вообще-то я через АДО не ломился, и что, работает? Честно говоря, не представляю как это может работать, не представляю как сам сервак может знать, сколько он еще будет запрос отрабатывать.


 
Данила   (2003-10-09 14:06) [5]

2Danilka.
Не, не работет, если повесить на FetchProgress какой-нить ShowMessage. То этот ShowMessage ниразу не вылетает во время запроса :(


 
Delirium   (2003-10-09 14:11) [6]

Время исполнения запроса делится на 2 этапа: собственно исполнение запроса на сервере, это не протоколируется и время передачи данных - а вот это можно протоколировать в ADO в асинхронном режиме в событии OnFetchProgress


 
Данила   (2003-10-09 14:17) [7]

2Delirium ©
"и время передачи данных - а вот это можно протоколировать"
Пишем как доктор прописал... Но :(.

form_index.label_progress.caption := "Percent complete: " + IntToStr(Trunc(Progress / MaxProgress * 100)) + "%";
Application.ProcessMessages;


 
Danilka   (2003-10-09 14:18) [8]

[6] Delirium © (09.10.03 14:11)
Понятно.
Имеет смысл при всяких экспортах больших таблиц, в других случаях, как правило, второй этап намного быстрее первого, или оба быстрые.
Вобщем, экзотика.


 
Delirium   (2003-10-09 15:01) [9]

> Данила (09.10.03 14:17) [7]
Вот набросал по быстрому..
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, StdCtrls;

const ASync=WM_USER+2000;

type
TForm1 = class(TForm)
Button1: TButton;
ADOQuery1: TADOQuery;
ADOConnection1: TADOConnection;
procedure ADOQuery1FetchProgress(DataSet: TCustomADODataSet; Progress,
MaxProgress: Integer; var EventStatus: TEventStatus);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
procedure ASyncMsg(var Msg:TMessage); message ASync;
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.ASyncMsg(var Msg:TMessage);
begin
Caption:=Caption+IntToStr(Msg.LParam)+";";
end;

procedure TForm1.ADOQuery1FetchProgress(DataSet: TCustomADODataSet;
Progress, MaxProgress: Integer; var EventStatus: TEventStatus);
begin
PostMessage(Handle,ASync,0,Progress);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
ADOQuery1.Open;
end;

end.


 
blackman   (2003-10-09 15:25) [10]

Если знаешь сколько времени приблизительно выполняется можно по таймеру ...
http://delphiclub.ru/forums/index.php?act=ST&f=4&t=335&s=2eb80ef96e2f643ba2154a48c3445738



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2003.10.30;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.009 c
11-98535
Immortal_
2003-02-12 00:35
2003.10.30
PaintBox + MCK - Пример бы...


3-98506
Miau
2003-10-08 19:14
2003.10.30
Неблокирующий запрос


14-98816
4445
2003-10-11 15:54
2003.10.30
Тормозное открытие папок..


1-98619
PVOzerski
2003-10-16 17:54
2003.10.30
Теоретический вопрос о ShareMem: нельзя ли обойтись?


14-98850
nick-from
2003-10-11 13:34
2003.10.30
Подбор микроволновки





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский