C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
DBGrid и ADOQuery
Borr
Отправлено: 20.04.2005, 07:46


Ученик-кочегар

Группа: Участник
Сообщений: 14



После того как меняешь строку запроса и открываешь ADOQuery сразу меняется и DBGrid. Мне этого не нужно. Нужно видеть результаты предидущего запроса и обновить отображение только по команде пользователя. StringGrid использовать неудобно он долго отрабатывает (в таблице 13000 записей). Я вижу только одно решение сколько DBGrid и куча ADOQuery, а если DBGrid'ov несколько это мне ADOQuery плодить в арихметической прогрессии?
Как заставить DBGrid обновляться отдельной командой, или как ускорить загрузку результатов запроса в StringGrid
olegenty
Отправлено: 20.04.2005, 08:04


Ветеран

Группа: Модератор
Сообщений: 2412



вариант, построенный на EhLib:
TADOConnection->TADODataDriverEh->TMemTableEh->TDataSource->TDBGridEh

в этой связке SQL запрос содержится в TADODataDriverEh, а набор данных — в TMemTableEh. так что смена запроса ни к чему не ведёт. а вот переоткрытие TMemTableEh как раз и приведёт к нужному тебе результату.
Borr
Отправлено: 20.04.2005, 08:35


Ученик-кочегар

Группа: Участник
Сообщений: 14



Где можно взять эту библиотеку, она платная?Ставиться тяжело?
olegenty
Отправлено: 20.04.2005, 08:57


Ветеран

Группа: Модератор
Сообщений: 2412



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

http://ehlib.com/RUS/default.htm
Borr
Отправлено: 20.04.2005, 09:44


Ученик-кочегар

Группа: Участник
Сообщений: 14



Поставил EhLib но не могу найти компоненты
TADODataDriverEh и TMemTableEh (к стати и в списке EhLib их нет) их нужно где-то брать дополнительно. Можно ли их заменить чемто стандартным типа ADOTable?
Borr
Отправлено: 20.04.2005, 10:19


Ученик-кочегар

Группа: Участник
Сообщений: 14



Все спасибо уже нашел
А стандартным набором эта задача решается
типа ADOQuery ADOTable DBGrid

Отредактировано Borr — 20/04/2005, 11:02
olegenty
Отправлено: 20.04.2005, 11:24


Ветеран

Группа: Модератор
Сообщений: 2412



не пробовал и не собираюсь, потому что TADOQuery/Table/DataSet не предоставляют нужной мне функциональности, а именно: я работаю с "живыми" клиентскими наборами данных, куда выборка делается из VIEW, а вставка/обновление/удаление — посредством хранимых процедур. такую функциональность мне даёт пара TXXXDataDriverEh + TMemTableEh. аналогично можно работать с TClientDataSet + TDataSetProvider, но нужно затратить побольше усилий...

Вернуться в Работа с базами данных в C++Builder