Форум: "Начинающим";
Текущий архив: 2007.04.08;
Скачать: [xml.tar.bz2];
ВнизКак правильно построить структуру для работы с БД Найти похожие ветки
← →
Новичёк (2007-03-19 23:46) [0]Начал изучать Delphi при работе с БД.
Решил вначале для пробы написать всё тот же телефонный справочник.
Список строю при помощи Query.
Добавление, удаление, редактирование так же через ExecSQL после чего что бы изменения отобразились в текущем списке делаю query.refresh
Вот при записях за 500 наблюдается неприятное зависание при refresh
Подскажите правильно ли я делаю или как-то по-умному нужно организовать это. Работать с table как-то нехочется, т.к. sql намного гибче по-моему.
Буду благодарен за любй ответ
← →
Германн © (2007-03-20 01:40) [1]
> Вот при записях за 500 наблюдается неприятное зависание
> при refresh
Да. Неприятно. 500 - это не количество для базы данных.
А может проблема связана с отображением результата запроса, а не с самим запросом? DisableControls/EnableControls могут помочь в этом случае.
← →
ЮЮ © (2007-03-20 04:09) [2]Методы Insert, Post есть и у TQuery, при этом запись добавляется непосредственно в TQuery и не требуется Refresh. При этом на сервер отправляются те же саые запросы, что ты выполняешь своим кодом при ExecSQL (при кэшировании изменений, правда, не надо забывать про ApplyUpdates ). Если же хочется полностью контролировать текст этих запросов, то в пару к TQuery есть TUpdateSQL
← →
zdm © (2007-03-20 07:59) [3]самый надежный способ-это "ни чего не надо перерисовывать" во время, добавления(и тем более обновления), на это время лучше запустить "заставку", с надписью или gif-ом-типа "обождите, не захлопывайте", а уже потом Query.Close, Query.Open
P.S. чо за комп такой, который всего-лишь 500 записей долго перепрочитывает? Или БД на северном полюсе по Dial-Up?
← →
Новичёк (2007-03-20 09:56) [4]>>Методы Insert, Post есть и у TQuery, при этом запись добавляется непосредственно в TQuery и не требуется Refresh.
Интересно, буду учить, спасибо, хотя сейчас немного сомневаюсь работает ли это, так как данные берутся с 3 таблиц.
>>P.S. чо за комп такой, который всего-лишь 500 записей долго перепрочитывает?
двухядерный атлон. база локальная. как видно из названия сторонняя библиотека AbsoluteDatabase
← →
ЮЮ © (2007-03-20 10:29) [5]> , так как данные берутся с 3 таблиц.
И втавляешь запросом сразу в три? И удаляешь из трех?
Запрос на выборку приведи хотя бы
← →
ЮЮ © (2007-03-20 10:30) [6]>база локальная. как видно из названия сторонняя библиотека AbsoluteDatabase
А DataSet-ы тоже сторонние, или BDE-шные?
← →
Новичёк (2007-03-20 12:08) [7]tel
===
numb номер телефона
FIO ФИО
nDom номер дома\квартиры
kod_ul код улицы
kod_r код района
ul
==
kod
naimen
rajon
====
kod
naimen
Запрос типа такого:
select s.*, u.naimen, r.naimen from spr s, ulizy u, rajon r
where (kod_ul=u.kod) and (kodR=r.kod)
order by FIO
ну и далее через другой query делаю insert spr а тут refresh или close\open
DataSet-ы чисто дельфийсие, вроде к BDE никакого отношения не имеют
← →
Плохиш © (2007-03-20 12:12) [8]
> DataSet-ы чисто дельфийсие, вроде к BDE никакого отношения
> не имеют
Не пора ли почитать чего для начала?
← →
Новичёк (2007-03-20 12:13) [9]торможу насчёт DataSource
DataSet - query из AbsoluteDatabase, хотя пробовал и через BDE подвисания те же. хотя возможно 2 секунды это нормально?
← →
Плохиш © (2007-03-20 12:25) [10]
> Новичёк (20.03.07 12:13) [9]
Стоит поинтересоваться у разработчиков, почему их бд так тормозит.
← →
Новичёк (2007-03-20 12:45) [11]я же написал, что и через BDE то же самое.
скажите, а условия отбора влияют на это существенно или нет?
у меня, например, в where есть несколько ещё условий отбора: пару EXIST и LIKE
← →
Sergey13 © (2007-03-20 13:05) [12]> [9] Новичёк (20.03.07 12:13)
Индексы хоть какие то есть? А вообще, ИМХО, у [2] ЮЮ © (20.03.07 04:09) уже все сказано по этой проблеме.
← →
Anatoly Podgoretsky © (2007-03-20 21:00) [13]> Плохиш (20.03.2007 12:25:10) [10]
Не тормозит она, летает.
← →
ЮЮ © (2007-03-21 03:46) [14]
> в where есть несколько ещё условий отбора: пару EXIST и
> LIKE
Станно видеть EXIST в выборке, по сути, из одной таблицы
Код запроса приведи. Похоже, тормаза в нем, ибо [13]
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.04.08;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.04 c