Поиск:

Ответ в темуСоздание новой темы Создание опроса
> LoadFromDataSet - как работает? Работа с компонентой TMemTableEh (EhLib) 
:(
    Опции темы
Rocksteady
Дата 3.6.2008, 13:41 (ссылка)  | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 19.4.2008
Где: Львов

Репутация: нет
Всего: нет



Всем привет.
У меня имеется два датасета (типа TMemTableEh - из библиотеки Эхлиб 4). Я заполняю их, используя примерно следующий код:
Код

for (int j = 0; j < 60000; ++j)
 {
   mdtTestEh->Append();
   mdtTestEhId->Value = j;
   mdtTestEhName->Value = "Everybody lies";
   mdtTestEhValue->Value = random(100);
   mdtTestEhComment->Value = "Ehlib 4.0";
   mdtTestEhTime->Value = Now();
   mdtTestEh->Post();
}


Когда количество записей, которые я хочу добавить, равно 60000, эта процедура занимает примерно 42 секунды.
Но когда я копирую контент  одного датасета в другой, используя ф-ю LoadFromDataSet, это занимает не более 800 миллисекунд.
Я просто не могу разобраться, почему такая гигантская разница. Глядела в код LoadFromDataSet - там ф-я fetchRecord вызывается для каждого рекорда соурсного датасета.
Буду очень благодарна за ваши объяснения.

Это сообщение отредактировал(а) Rocksteady - 3.6.2008, 13:42
PM MAIL ICQ Skype   Вверх
Escort
Дата 25.6.2008, 20:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 16.6.2008
Где: Пермь

Репутация: нет
Всего: нет



возможно Now() занимает какое-то кол-во времени. Насчет 42 сек я smile 
PM MAIL ICQ   Вверх
nickkk
Дата 29.12.2010, 06:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 29.12.2010

Репутация: нет
Всего: нет



Возможно потому что не было вызова DisableControls перед циклом, из-за чего при добавлении каждой записи происходили обработки разных событий графических компонентов.
P.S. А вдруг еще нужно? smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C++: Базы данных"
chipset

Данный форум предназначен для обсуждения вопросов прямым образом связанных с C++ и БД. Так, вопросы только по C++ следует задавать в C++:Общие вопросы а вопросы по абстрактным БД в Базах данных или в соответствующих под-форумах.

Благодарим за понимание.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, chipset.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Базы данных | Следующая тема »


 




[ Время генерации скрипта: 0.0399 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.