Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
TDBGrid + TQuery - глюки при работе
|
|||
|---|---|---|---|
|
#18+
Народ, помогите, плиз, срочна нада, я не знаю в чем дело, опишу ситуацию: У меня стоит MSSQL Server v.8 . На форме лежит 3 компонента: TDBGrid, TDataSource и TQuery. DataSource1.DataSet := Query1 DBGrid1.DataSource := DataSource1 Мне нужно, загрузить из двух таблиц (DOLGI, BAZA) определенные колонки в DBGrid1. В Query1.SQL пишу запрос (даже для теста можно Select * from dbo.BAZA, dbo.DOLGI) - все нормально. Запускаю программу, в DBGrid все колонки из двух таблиц, НО только я прокручиваю скроллер в GRID'e в самый низ (в таблицах очень много записей), как программа повисает и начинает дико съедать ресурсы машины - оперативу, потом уходит в свап и комп чуть ли не повисает. Делал запрос и через SQL Builder (правая кнопка по Query1) - выбирал нужные колонки - итог тот же. НО, с одной таблицей все работает нормально и скроллер и все. Пробовал использовать другие компоненты - SDAC (там тоже есть типа Query) - итог тот же, прога сьедат ресурсы и висит... ** Народ, подскажите, в чем дело? Мне всего лишь надо выбрать из двух (и более) таблиц нужные колонки и запихнуть их в DBGrid1 * Заранее спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2003, 16:12 |
|
||
|
TDBGrid + TQuery - глюки при работе
|
|||
|---|---|---|---|
|
#18+
А сколько записей возвращает ваш запрос? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2003, 16:17 |
|
||
|
TDBGrid + TQuery - глюки при работе
|
|||
|---|---|---|---|
|
#18+
Сколько записей? По идее все =) Их там несколько тысяч =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2003, 16:19 |
|
||
|
TDBGrid + TQuery - глюки при работе
|
|||
|---|---|---|---|
|
#18+
Несколько тысяч - это не много, если сами записи не здоровые. Во-первых, нахрена на клиенте столько сразу? Нельзя разве условие отбора поставить и по сотне записей тянуть? Все равно юзер больше не переварит. Во-вторых, по поводу собственно вопроса. Сильно похоже, что у машины элементарно не хватает ресурсов столько записей потянуть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2003, 16:25 |
|
||
|
TDBGrid + TQuery - глюки при работе
|
|||
|---|---|---|---|
|
#18+
Ну на машине 512 метров оперы, да и на свап вполне хватает, чтоб и туда прога уходила потом =))) А, кстати, забыл сказать, что когда делал через TTable - все намана прокручивалосьи работало. Тока там я не могу выбирать нужные колонки из нужных таблиц ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2003, 16:27 |
|
||
|
TDBGrid + TQuery - глюки при работе
|
|||
|---|---|---|---|
|
#18+
Ладно, допустим неизвестно что делать - из-за чего глюки. Тогда мож подскажешь, как мне вообще зделать это: надо выбрать из двух (и более) таблиц нужные колонки и запихнуть их в DBGrid1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2003, 16:29 |
|
||
|
TDBGrid + TQuery - глюки при работе
|
|||
|---|---|---|---|
|
#18+
Ну блин не знаю тогда. Может у тебя получился cross join? Типа кол-во строк в одной таблице * кол-во строк в другой. Тогда получится дохрена данных. :)) Вообще делается так: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2003, 16:33 |
|
||
|
TDBGrid + TQuery - глюки при работе
|
|||
|---|---|---|---|
|
#18+
2 Sensor даже для теста можно Select * from dbo.BAZA, dbo.DOLGI Так вы получите декартово произведение. То есть если в каждой таблице 1 000 записей, то в результате будет 1 000 000, так что вполне понятно, что своп растет. Тогда мож подскажешь, как мне вообще зделать это Сначала надо бы теорию почитать, про SQL, запросы там всяческие, JOINы... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2003, 16:33 |
|
||
|
TDBGrid + TQuery - глюки при работе
|
|||
|---|---|---|---|
|
#18+
2 pkarklin Жаль, что во времени поста секунды не показываются :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2003, 16:34 |
|
||
|
TDBGrid + TQuery - глюки при работе
|
|||
|---|---|---|---|
|
#18+
Ага, несколько тысяч. ) Если нет строки where, где записи из разных таблиц связываются через идентификатор, либо не используется join, то в результате получается что? Умножение таблиц!!! То есть, у вас на самом деле возварщаются сначала все записи первой таблицы, к которым справа добавлена первая запись из второй таблицы, затем снова все записи первой таблицы, но уже со второй записью второй таблицы и т.д. :) Не удивительно, что идёт дикий своп и всё зависает. Аккуратнее нужно таблицы объединять... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2003, 16:41 |
|
||
|
TDBGrid + TQuery - глюки при работе
|
|||
|---|---|---|---|
|
#18+
Мда, времени на теорию нету. И возможно ли зделать это, без использования TQuery? =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2003, 16:41 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=32202323&tid=2117765]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
125ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 230ms |
| total: | 436ms |

| 0 / 0 |
