Гость
Форумы / SQLite [игнор отключен] [закрыт для гостей] / использование одного FDQuery select для получения данных из разных таблиц. / 25 сообщений из 31, страница 1 из 2
05.07.2016, 10:53
    #39267800
komvik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование одного FDQuery select для получения данных из разных таблиц.
Доброго времени суток!
просмотрев разные темы подобной не нашел ,так что обращаюсь з хелпом к знатокам.

Есть деяток таблиц одинаковой конструкции..

необходимо выбрать из нескольких таблиц данные imep, pmax, или knock.
причем условия выбора по полю hmsmsc для всех одинаковы.

(из за отсутстви опыта )проблема была решена в лоб.сначала делалась выборка для табл1

sq = "SELECT strftime('%H:%M:%f',hmsmsc)";
if( CheckBox_knock->Checked == true ){sq = sq + ",knock"; DF=DF+"knock;"; }
if( CheckBox_imep->Checked == true ) {sq = sq + ",imep"; DF=DF+"imep;"; }
if( CheckBox_pmax->Checked == true ) {sq = sq + ",pmax"; DF=DF+"pmax;";}
sq = sq + " FROM wcdat_cylA1";
sq = sq + " WHERE strftime('%H:%M:%S',hmsmsc) BETWEEN '"+StartTM+"'AND'"+EndTM+"'";
FDQuery_select->SQL->Clear();
FDQuery_select->DetailFields=DF;
FDQuery_select->IndexFieldNames=" strftime('%H:%M:%f',hmsmsc)";
FDQuery_select->SQL->Text = sq;
FDQuery_select->Open();
FDQuery_select->Active=true;
for (int lb =0 ; lb < FDQuery_select->RowsAffected; lb++)
{
if( CheckBox_knock->Checked == true )
{
DecodeTime(FDQuery_select->FieldByName("strftime('%H:%M:%f',hmsmsc)")->AsDateTime, Hour, Min, Sec, MSec);
dtXValue = EncodeTime(Hour, Min, Sec, MSec);
const double XVal = dtXValue;
DBChart1->Series[0]->XValues->DateTime = true;
DBChart1->Series[0]->AddXY(XVal, FDQuery_select->FieldByName("knock")->AsFloat);

}
if( CheckBox_imep->Checked == true )
{
DecodeTime(FDQuery_select->FieldByName("strftime('%H:%M:%f',hmsmsc)")->AsDateTime, Hour, Min, Sec, MSec);
dtXValue = EncodeTime(Hour, Min, Sec, MSec);
const double XVal = dtXValue;
DBChart1->Series[1]->XValues->DateTime = true;
DBChart1->Series[1]->AddXY(XVal, (FDQuery_select->FieldByName("imep")->AsFloat)/100);
}
if( CheckBox_pmax->Checked == true )
{
DecodeTime(FDQuery_select->FieldByName("strftime('%H:%M:%f',hmsmsc)")->AsDateTime, Hour, Min, Sec, MSec);
dtXValue = EncodeTime(Hour, Min, Sec, MSec);
const double XVal = dtXValue;
DBChart1->Series[2]->XValues->DateTime = true;
DBChart1->Series[2]->AddXY(XVal, (FDQuery_select->FieldByName("pmax")->AsFloat)/10);

}
FDQuery_select->Next();
}

и в цикле строились графикию
для следующей таблицы повторялось то же самое.

ВОПРОС.

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

и как потом вытащить данные разных таблиц.
...
Рейтинг: 0 / 0
05.07.2016, 11:59
    #39267850
komvik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование одного FDQuery select для получения данных из разных таблиц.
Всплыл есче один вопрос .
Я думаю он полегче первого.
есть ли разница во времени для обрабтки таких запросов для поиска в цикле 1.000.000 записей

цикл постм выше.

SELECT imep FROM wcdat
SELECT imep,pmax,knock FROM wcdat


WHERE strftime('%H:%M:%S',hmsmsc) BETWEEN '"00.00.00.001"'AND'"23.59.59.999"'";
приблизительно плус минус такое колличество
...
Рейтинг: 0 / 0
05.07.2016, 17:03
    #39268158
PPA
PPA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование одного FDQuery select для получения данных из разных таблиц.
komvikвозможно ли объеденить все запросы в один и впихнуть в компонент FDQuery чтобы не повторять десяток циклов для каждого селекта отдельно.
и как потом вытащить данные разных таблиц.

Число таблиц всегда одинаковое?
Соедини их union all

Можешь автоматизировать генерацию общего SQL через SELECT * FROM sqlite_master

пример:

Код: sql
1.
2.
3.
SELECT 1 type, * FROM wcdat_cylA1
union all
SELECT 2 type, * FROM wcdat_cylA2



В цикле по type сможешь выбирать нужный DBChart1, DBChart2,...
...
Рейтинг: 0 / 0
05.07.2016, 17:24
    #39268174
komvik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование одного FDQuery select для получения данных из разных таблиц.
PPA,

1 число таблиц всегда одинаково.
2 никогда не соединял и не совсем понял как я понял что это возможно .буду копать.

3 данные все время записываются и в процесе записи необходимо или прочитать актуальную базу или базы прошедших дней. Я каждый день создаю новую базу с константным кол- вом таблиц.

пы.сы. был бы очень признателен получив ответна пост номер два по поводу скорости. если да на сколько велика разница на миллионе строк . может не заморачиваясь писать select *или все же вызывать столбцы в прцессе надобности.
...
Рейтинг: 0 / 0
06.07.2016, 07:48
    #39268449
PPA
PPA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование одного FDQuery select для получения данных из разных таблиц.
komvik,

3 - А зачем ты создаешь много таблиц если у них структура одинаковая - чтобы потом героически их "склеивать"?
p.s.
Для скорости тебе нужно использовать индексы и самому тестировать т.к. живые данные есть только у тебя.
ну и * естественно хуже чем явное указание нужных полей.
...
Рейтинг: 0 / 0
06.07.2016, 10:26
    #39268547
komvik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование одного FDQuery select для получения данных из разных таблиц.
PPA,

Проблемма кроется в отсутствии опыта. Приходится пользоваться советами которые в итоге приводят к тупиковым решениям. По-этому Взял за основу стратегически не верное но рабочее решение.И всячески пытаюсь его допилить.

Плюс задача заказчика иногда меняет свои условия и тд.итп.

Попытаюсь есче раз.Если есть время на простом примере "без страшных для новичков названий" показать.
1. взять три четыре таблицы с ПОЧТИ одинаковым именем типа имя1.имя2.имя3. одной базы.
2. сделать один запрос сразу для всех трёх

чтото типа SELECT имя1.tab1,имя2.tab2,имя3.tab3 FROM tab1,tab2,tab3 WHERE .....условие поиска по времени для всех одинаково типа WHERE strftime('%H:%M:%S',hmsmsc) BETWEEN '"00.00.00.001"'AND'"23.59.59.999"'";

запихнуть этот селект в FDQuery_selectю

а потом прочитать
for (int lb =0 ; lb < FDQuery_select->RowsAffected; lb++)
{
FDQuery_select->FieldByName("имя1.tab1")->AsFloat
FDQuery_select->FieldByName("имя2.tab2")->AsFloat
FDQuery_select->FieldByName("имя3.tab3")->AsFloat
}

вот собственно и всё
индексы,скуэль мастер бинд соединение для меня пока только названия и задача копать в этом направлении.
а на краткосрочном этапе начальство вопрошает типа МОГЁШЬ- предяви. а потом капай себе свои бинд соединения улучшай и ускоряй. но потом.как то так.
С надеждой на понимание.

KOMVIK
...
Рейтинг: 0 / 0
06.07.2016, 10:55
    #39268567
PPA
PPA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование одного FDQuery select для получения данных из разных таблиц.
komvik,

Я ведь привел пример как соединить твои таблицы на примере 2-х штук:
почитай про команду sql - union all

Код: sql
1.
2.
3.
SELECT 1 type, * FROM wcdat_cylA1 WHERE strftime('%H:%M:%S',hmsmsc) BETWEEN '"00.00.00.001"'AND'"23.59.59.999"'"
union all
SELECT 2 type, * FROM wcdat_cylA2 WHERE strftime('%H:%M:%S',hmsmsc) BETWEEN '"00.00.00.001"'AND'"23.59.59.999"'"
...
Рейтинг: 0 / 0
06.07.2016, 11:07
    #39268586
komvik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование одного FDQuery select для получения данных из разных таблиц.
PPA,

это я понял. я не понимаю

PPAВ цикле по type сможешь выбирать нужный DBChart1, DBChart2,...

КАК? ка писать этот " type " .
...
Рейтинг: 0 / 0
06.07.2016, 11:08
    #39268589
komvik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование одного FDQuery select для получения данных из разных таблиц.
PPA,

любой пример с синтаксисом написания
...
Рейтинг: 0 / 0
06.07.2016, 11:09
    #39268590
PPA
PPA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование одного FDQuery select для получения данных из разных таблиц.
komvik,

FDQuery_select->FieldByName("type")->AsInteger - тут будет у тебя номер таблицы
по нему сможешь выбрать нужный чарт.
судя по имена ты накидал на форму столько DBChart сколько у тебя таблиц?
...
Рейтинг: 0 / 0
06.07.2016, 11:11
    #39268595
PPA
PPA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование одного FDQuery select для получения данных из разных таблиц.
komvikPPA,

любой пример с синтаксисом написания

Покажи вторую часть кода как ты обрабатываешь таблицу wcdat_cylA2
из него будет лучше видно что у тебя и как сделано.
...
Рейтинг: 0 / 0
06.07.2016, 12:16
    #39268680
komvik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование одного FDQuery select для получения данных из разных таблиц.
PPA,
я использую один чарт.но длякаждого случая свою серию.

FDQuery_select->Close();
FDQuery_select->Connection = FDConnection_wcdat;
FDQuery_select->Connection->DriverName="SQLite";

sq = "SELECT strftime('%H:%M:%f',hmsmsc)";
if( CheckBox_knock->Checked == true ){sq = sq + ",knock"; DF=DF+"knock;"; }
if( CheckBox_imep->Checked == true ) {sq = sq + ",imep"; DF=DF+"imep;"; }
if( CheckBox_pmax->Checked == true ) {sq = sq + ",pmax"; DF=DF+"pmax;";}
sq = sq + " FROM wcdat_cylA2";
sq = sq + " WHERE strftime('%H:%M:%S',hmsmsc) BETWEEN '"+StartTM+"'AND'"+EndTM+"'";

FDQuery_select->SQL->Clear();
FDQuery_select->DetailFields=DF;
FDQuery_select->IndexFieldNames=" strftime('%H:%M:%f',hmsmsc)";
FDQuery_select->SQL->Text = sq;
FDQuery_select->Open();
FDQuery_select->Active=true;

for (int lb =0 ; lb < FDQuery_select->RowsAffected; lb++)
{
if( CheckBox_knock->Checked == true )
{
DecodeTime(FDQuery_select->FieldByName("strftime('%H:%M:%f',hmsmsc)")->AsDateTime, Hour, Min, Sec, MSec);
dtXValue = EncodeTime(Hour, Min, Sec, MSec);
const double XVal = dtXValue;
DBChart1->Series[3]->XValues->DateTime = true;
DBChart1->Series[3]->AddXY(XVal, FDQuery_select->FieldByName("knock")->AsFloat);

}
if( CheckBox_imep->Checked == true )
{
DecodeTime(FDQuery_select->FieldByName("strftime('%H:%M:%f',hmsmsc)")->AsDateTime, Hour, Min, Sec, MSec);
dtXValue = EncodeTime(Hour, Min, Sec, MSec);
const double XVal = dtXValue;
DBChart1->Series[4]->XValues->DateTime = true;
DBChart1->Series[4]->AddXY(XVal, (FDQuery_select->FieldByName("imep")->AsFloat)/100);

}
if( CheckBox_pmax->Checked == true )
{
DecodeTime(FDQuery_select->FieldByName("strftime('%H:%M:%f',hmsmsc)")->AsDateTime, Hour, Min, Sec, MSec);
dtXValue = EncodeTime(Hour, Min, Sec, MSec);
const double XVal = dtXValue;
DBChart1->Series[5]->XValues->DateTime = true;
DBChart1->Series[5]->AddXY(XVal, (FDQuery_select->FieldByName("pmax")->AsFloat)/10);

}
FDQuery_select->Next();
}
Application->ProcessMessages();
}

//---------------------------------- CYLINDER A3 ----------------------

if(CheckBoxCyl3->Checked == true )
{
FDQuery_select->Close();
FDQuery_select->Connection = FDConnection_wcdat;
FDQuery_select->Connection->DriverName="SQLite";

sq = "SELECT strftime('%H:%M:%f',hmsmsc)";
if( CheckBox_knock->Checked == true ){sq = sq + ",knock"; DF=DF+"knock;"; }
if( CheckBox_imep->Checked == true ) {sq = sq + ",imep"; DF=DF+"imep;"; }
if( CheckBox_pmax->Checked == true ) {sq = sq + ",pmax"; DF=DF+"pmax;";}
sq = sq + " FROM wcdat_cylA3";
sq = sq + " WHERE strftime('%H:%M:%S',hmsmsc) BETWEEN '"+StartTM+"'AND'"+EndTM+"'";



FDQuery_select->SQL->Clear();
FDQuery_select->DetailFields=DF;
FDQuery_select->IndexFieldNames=" strftime('%H:%M:%f',hmsmsc)";
FDQuery_select->SQL->Text = sq;
FDQuery_select->Open();
FDQuery_select->Active=true;



for (int lb =0 ; lb < FDQuery_select->RowsAffected; lb++)
{
if( CheckBox_knock->Checked == true )
{
DecodeTime(FDQuery_select->FieldByName("strftime('%H:%M:%f',hmsmsc)")->AsDateTime, Hour, Min, Sec, MSec);
dtXValue = EncodeTime(Hour, Min, Sec, MSec);
const double XVal = dtXValue;
DBChart1->Series[6]->XValues->DateTime = true;
DBChart1->Series[6]->AddXY(XVal, FDQuery_select->FieldByName("knock")->AsFloat);

}
if( CheckBox_imep->Checked == true )
{
DecodeTime(FDQuery_select->FieldByName("strftime('%H:%M:%f',hmsmsc)")->AsDateTime, Hour, Min, Sec, MSec);
dtXValue = EncodeTime(Hour, Min, Sec, MSec);
const double XVal = dtXValue;
DBChart1->Series[7]->XValues->DateTime = true;
DBChart1->Series[7]->AddXY(XVal, (FDQuery_select->FieldByName("imep")->AsFloat)/100);

}
if( CheckBox_pmax->Checked == true )
{
DecodeTime(FDQuery_select->FieldByName("strftime('%H:%M:%f',hmsmsc)")->AsDateTime, Hour, Min, Sec, MSec);
dtXValue = EncodeTime(Hour, Min, Sec, MSec);
const double XVal = dtXValue;
DBChart1->Series[8]->XValues->DateTime = true;
DBChart1->Series[8]->AddXY(XVal, (FDQuery_select->FieldByName("pmax")->AsFloat)/10);

}
FDQuery_select->Next();
}
Application->ProcessMessages();
}
...
Рейтинг: 0 / 0
06.07.2016, 12:23
    #39268694
komvik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование одного FDQuery select для получения данных из разных таблиц.
PPA,

как видно из кода это обыкновенный копипаст.
а хотелось бы все же чистоты написания.

существует 12 цилиндров и данные пишутся для всех одинаково но!
для прочтения и получения кривых не обязательно вызавать все 12

например надо посмотреть 3.5.и 7 цилиндры.
прога селектирует сначала 3тий потом крутит в цикле и показывает.затем то же самое с 5ым и 7мым
а хотелось бы один раз в цикле сразу все таблицы проскакать.
...
Рейтинг: 0 / 0
06.07.2016, 12:56
    #39268740
komvik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование одного FDQuery select для получения данных из разных таблиц.
PPA,

попробывал тайп. чесно говоря не то что ожидал .
получается что в случае чтения 24 часов у меня соберется одна таблица из 12 и колличество строк соотвественно вместо1.000.000 будет 12.000.000. а это тормоза.
...
Рейтинг: 0 / 0
06.07.2016, 13:08
    #39268754
PPA
PPA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование одного FDQuery select для получения данных из разных таблиц.
komvikPPA,

попробывал тайп. чесно говоря не то что ожидал .
получается что в случае чтения 24 часов у меня соберется одна таблица из 12 и колличество строк соотвественно вместо1.000.000 будет 12.000.000. а это тормоза.

Ты ведь сам хотел выполнить один запрос вместо 12?
А тормоза у тебя из-за того что выборка идет не по индексу.
также приведи в цифрах как выглядят эти тормоза?
...
Рейтинг: 0 / 0
06.07.2016, 13:16
    #39268767
PPA
PPA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование одного FDQuery select для получения данных из разных таблиц.
komvikPPA,

например надо посмотреть 3.5.и 7 цилиндры.
прога селектирует сначала 3тий потом крутит в цикле и показывает.затем то же самое с 5ым и 7мым
а хотелось бы один раз в цикле сразу все таблицы проскакать.

Зачем сразу все 12?
тебе нужно на основании галок собрать SQL из union all 3 5 и 7 таблиц
выполнить один раз запрос и закидать данные в чарты.

+ разобраться с индексами и построить нужный для оптимизации вот этого условия
WHERE strftime('%H:%M:%S',hmsmsc) BETWEEN '"+StartTM+"'AND'"+EndTM+"'"
...
Рейтинг: 0 / 0
06.07.2016, 13:22
    #39268776
komvik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование одного FDQuery select для получения данных из разных таблиц.
komvik,

при чтении таблицы и выборке все 24 часа программа в цикле выбирает и строит графики приблизительно 30- 40 секунд соответственно для 24 цилиндров 24 раз по тридцать сек.
идея была запихнуть все 24 запроса в один цикл.
для этого или написать мультиселект или использовать 24 компонента FDQuery.
а это( согласитесь) не есть чистота реализации.
...
Рейтинг: 0 / 0
06.07.2016, 13:23
    #39268780
komvik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование одного FDQuery select для получения данных из разных таблиц.
PPA,

программа создается в двух версиях 12 и 24 цилиндра
...
Рейтинг: 0 / 0
06.07.2016, 13:25
    #39268784
PPA
PPA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование одного FDQuery select для получения данных из разных таблиц.
komvikPPA,

попробывал тайп. чесно говоря не то что ожидал .
получается что в случае чтения 24 часов у меня соберется одна таблица из 12 и колличество строк соотвественно вместо1.000.000 будет 12.000.000. а это тормоза.

В случае с один запросом и полем type у тебя будет так:
type в SQL генерируй с 0,1,2,3,4.... 11

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
const int type = FDQuery_select->FieldByName("type")->AsInteger;

DBChart1->Series[type*3 ]->XValues->DateTime = true;
DBChart1->Series[type*3 ]->AddXY(XVal, FDQuery_select->FieldByName("knock")->AsFloat);

DBChart1->Series[type*3 +1 ]->XValues->DateTime = true;
DBChart1->Series[type*3 +1 ]->AddXY(XVal, FDQuery_select->FieldByName("imep")->AsFloat);

DBChart1->Series[type*3 +2 ]->XValues->DateTime = true;
DBChart1->Series[type*3 +2 ]->AddXY(XVal, FDQuery_select->FieldByName("pmax")->AsFloat);



И убери в своем код дублирование в каждом условии Checked == true )
Код: plaintext
1.
2.
3.
DecodeTime(FDQuery_select->FieldByName("strftime('%H:%M:%f',hmsmsc)")->AsDateTime, Hour, Min, Sec, MSec);
dtXValue = EncodeTime(Hour, Min, Sec, MSec);
const double XVal = dtXValue;
...
Рейтинг: 0 / 0
06.07.2016, 13:26
    #39268786
komvik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование одного FDQuery select для получения данных из разных таблиц.
PPAЗачем сразу все 12?
тебе нужно на основании галок собрать SQL из union all 3 5 и 7 таблиц
выполнить один раз запрос и закидать данные в чарты.

проверка на скорость идет по максимуму 24 цилиндра 24 часа все переменные.
(короче как в турции )всё включено. и на этапе максипроверки время построения занимает много времени.
...
Рейтинг: 0 / 0
06.07.2016, 13:33
    #39268794
PPA
PPA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование одного FDQuery select для получения данных из разных таблиц.
komvikkomvik,

при чтении таблицы и выборке все 24 часа программа в цикле выбирает и строит графики приблизительно 30- 40 секунд соответственно для 24 цилиндров 24 раз по тридцать сек.
идея была запихнуть все 24 запроса в один цикл.
для этого или написать мультиселект или использовать 24 компонента FDQuery.
а это( согласитесь) не есть чистота реализации.


Выборка всех записей в SQL без построения графика сколько идет тоже 30-40 сек?

Я выше написал как выполнить выборку через один SQL
не понял зачем тебе 24 компонента FDQuery ?
ты их что 24 штуки на форму понакидал?

Твой код можно и нужно построить так, что ему будет все равно сколько цилиндров. хоть 48 )
...
Рейтинг: 0 / 0
06.07.2016, 13:34
    #39268796
komvik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование одного FDQuery select для получения данных из разных таблиц.
PPA,

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

по больше бы таких примеров:)
...
Рейтинг: 0 / 0
06.07.2016, 13:38
    #39268803
komvik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование одного FDQuery select для получения данных из разных таблиц.
PPA,

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

если один раз прокрутить и показать всё то думаю на всё уйдет меньше минуты.
...
Рейтинг: 0 / 0
06.07.2016, 13:40
    #39268809
komvik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование одного FDQuery select для получения данных из разных таблиц.
komvik,

хочу отдельно сказать спасибо за участие . конечно карма программиста получает свои плюсы. но может как то отдельно можно выразить благодарность. как?
...
Рейтинг: 0 / 0
06.07.2016, 13:42
    #39268812
PPA
PPA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
использование одного FDQuery select для получения данных из разных таблиц.
komvikPPAЗачем сразу все 12?
тебе нужно на основании галок собрать SQL из union all 3 5 и 7 таблиц
выполнить один раз запрос и закидать данные в чарты.
проверка на скорость идет по максимуму 24 цилиндра 24 часа все переменные.
(короче как в турции )всё включено. и на этапе максипроверки время построения занимает много времени.

Т.е. в таблице лежат всегда одни сутки.
в этом случае тебе индекс не поможет т.к. все равно будет полное сканирование.

Добавь в начале цикла код
DBChart1->Series[i]->BeginUpdate();
а в конце
DBChart1->Series[i]->EndUpdate();

где i - перебери все серии по аналогии с этим
http://www.teechart.net/support/viewtopic.php?f=3&t=5615

После этого замерь время заполнения.
сколько получится?
...
Рейтинг: 0 / 0
Форумы / SQLite [игнор отключен] [закрыт для гостей] / использование одного FDQuery select для получения данных из разных таблиц. / 25 сообщений из 31, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]