powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / TDBGrid + TQuery - глюки при работе
12 сообщений из 12, страница 1 из 1
TDBGrid + TQuery - глюки при работе
    #32202248
Sensor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Народ, помогите, плиз, срочна нада, я не знаю в чем дело, опишу ситуацию:
У меня стоит 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
*
Заранее спасибо!
...
Рейтинг: 0 / 0
TDBGrid + TQuery - глюки при работе
    #32202261
Артем1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А сколько записей возвращает ваш запрос?
...
Рейтинг: 0 / 0
TDBGrid + TQuery - глюки при работе
    #32202268
Sensor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сколько записей? По идее все =) Их там несколько тысяч =)
...
Рейтинг: 0 / 0
TDBGrid + TQuery - глюки при работе
    #32202283
Артем1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Несколько тысяч - это не много, если сами записи не здоровые.
Во-первых, нахрена на клиенте столько сразу? Нельзя разве условие отбора поставить и по сотне записей тянуть? Все равно юзер больше не переварит.
Во-вторых, по поводу собственно вопроса.
Сильно похоже, что у машины элементарно не хватает ресурсов столько записей потянуть.
...
Рейтинг: 0 / 0
TDBGrid + TQuery - глюки при работе
    #32202291
Sensor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну на машине 512 метров оперы, да и на свап вполне хватает, чтоб и туда прога уходила потом =)))
А, кстати, забыл сказать, что когда делал через TTable - все намана прокручивалосьи работало. Тока там я не могу выбирать нужные колонки из нужных таблиц
...
Рейтинг: 0 / 0
TDBGrid + TQuery - глюки при работе
    #32202298
Sensor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ладно, допустим неизвестно что делать - из-за чего глюки. Тогда мож подскажешь, как мне вообще зделать это: надо выбрать из двух (и более) таблиц нужные колонки и запихнуть их в DBGrid1
...
Рейтинг: 0 / 0
TDBGrid + TQuery - глюки при работе
    #32202303
Артем1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну блин не знаю тогда. Может у тебя получился cross join?
Типа кол-во строк в одной таблице * кол-во строк в другой.
Тогда получится дохрена данных. :))

Вообще делается так:

Код: plaintext
1.
2.
select table1.field1, table1.field2, table2.field1
from table1 left join table2 on table1.primarykeyfield = table2.forenKeyfield
where <Некое твое условие, ограничивающие набор данных до разумных пределов>
...
Рейтинг: 0 / 0
TDBGrid + TQuery - глюки при работе
    #32202304
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Sensor

даже для теста можно Select * from dbo.BAZA, dbo.DOLGI

Так вы получите декартово произведение. То есть если в каждой таблице 1 000 записей, то в результате будет 1 000 000, так что вполне понятно, что своп растет.

Тогда мож подскажешь, как мне вообще зделать это

Сначала надо бы теорию почитать, про SQL, запросы там всяческие, JOINы...
...
Рейтинг: 0 / 0
TDBGrid + TQuery - глюки при работе
    #32202306
Артем1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 pkarklin
Жаль, что во времени поста секунды не показываются :))
...
Рейтинг: 0 / 0
TDBGrid + TQuery - глюки при работе
    #32202323
Дмитрий Мыльников
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ага, несколько тысяч. )
Если нет строки where, где записи из разных таблиц связываются через идентификатор, либо не используется join, то в результате получается что? Умножение таблиц!!!
То есть, у вас на самом деле возварщаются сначала все записи первой таблицы, к которым справа добавлена первая запись из второй таблицы, затем снова все записи первой таблицы, но уже со второй записью второй таблицы и т.д. :)
Не удивительно, что идёт дикий своп и всё зависает.

Аккуратнее нужно таблицы объединять...
...
Рейтинг: 0 / 0
TDBGrid + TQuery - глюки при работе
    #32202324
Sensor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мда, времени на теорию нету.
И возможно ли зделать это, без использования TQuery? =)
...
Рейтинг: 0 / 0
TDBGrid + TQuery - глюки при работе
    #32202404
MikNik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SQL вообще-то и был придуман, чтобы было просто и удобно работать с записями БД.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / TDBGrid + TQuery - глюки при работе
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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