![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TQuery против TTable
Delphi basic © (2006-06-23 11:42:00)Для клиент-серверного приложения, когда желательно уменьшить объем сетевого трафика, в хелпах советуют использовать TQuery. А есть ли другие причины? Например, пусть имеется 1000 строк в таблице, из них отбирается 10. Что передается клиенту в каждом случае:
IBQuery - только 10 строк, отобраных SQL-запросом,
IBTable - вся 1000, из которой уже на клиенте отфильтровывается 10?
Desdechado (2006-06-23 12:35:00) [21]> Так, а с deadlock'ами как быть?
вот так: ibase.ru
Sergey13 (2006-06-23 12:34:00) [22]> [10] Delphi basic © (23.06.06 12:31)
> Так, а с deadlock'ами как быть?
Не допускать!!! 8-)
Danilka (2006-06-23 12:31:00) [23][7] Delphi basic © (23.06.06 12:27)
> Тогда, получается, если в таблице 1млн. записей, из которых,
> допустим, нужно отобрать только 100, то TTable все их сначала
> затащит на клиента, а потом будет фильровать? жуть...
ага.
Delphi basic (2006-06-23 12:31:00) [24]Так, а с deadlock'ами как быть?
Danilka (2006-06-23 12:31:00) [25][5] Delphi basic © (23.06.06 12:21)
Так и будет, если в IBQuery запрос, возвращающий только 10 записей, а в таблице, из которой отбираются данные 1000 записей.
Вообще, неплохо было-бы почитать теорию про РСУБД, ибо ТКвери и прочие, отличные от ТТабле это уже средство работы именно с РСУБД.
[6] Ega23 © (23.06.06 12:24)
> СУБД, кстати, какая?
Судя по IB% - IB :)
Sergey13 (2006-06-23 12:30:00) [26]2 [7] Delphi basic © (23.06.06 12:27)
>СУБД Firebird 1.5
Тогда твой ТТабл - это все равно законспирированный ЕКвери, только с дубово написанным запросом. Не умеют сервера по другому общаться, короме как на SQL.
Delphi basic (2006-06-23 12:27:00) [27]
> Ega23 © (23.06.06 12:24) [6]
> Так ты сам уже всё ответил...
> СУБД, кстати, какая?
Вообще это был вопрос насчет того, так это или не так.
Тогда, получается, если в таблице 1млн. записей, из которых, допустим, нужно отобрать только 100, то TTable все их сначала затащит на клиента, а потом будет фильровать? жуть...
СУБД Firebird 1.5
Ega23 (2006-06-23 12:24:00) [28]Так ты сам уже всё ответил...
СУБД, кстати, какая?
Delphi basic (2006-06-23 12:21:00) [29]
> IBQuery - только 10 строк, отобраных SQL-запросом,
> IBTable - вся 1000, из которой уже на клиенте отфильтровывается
> 10?
Насчет этого кто-нибудь может ответить?
Sergey13 (2006-06-23 12:18:00) [30]А чего не в "Потрепаться" сразу?
Ega23 (2006-06-23 12:14:00) [31]
> попробовал сделать то же самое с помощью TQuery - жутко
> неудобно.
Ну если ты привык гланты вырезать через задницу - то конечно вырезать их через рот тебе будет жутко неудобно...
Desdechado (2006-06-23 11:58:00) [32]Неудобно штаны через голову одевать. (с)
TQuery дает гибкость. Особенно на базах не из 1 таблицы, когда можно обратиться одним запросом и получить "выжимку" из многих табдиц по условиям и с сортировками, причем толькотех данных, какие нужны.
Обновления тоже делаются запросами, которые можно вписать заранее в соответствующие свойства (и обновления делаются автоматически) или отдельно для вящей гибкости обрабатывать руками.
Delphi basic (2006-06-23 11:45:00) [33]Просто раньше работал с помощью TTable. Теперь попробовал сделать то же самое с помощью TQuery - жутко неудобно. Во-первых, в листинг сразу влезает куча строк, в которых закидываются запросы; во-вторых, какие-либо изменения данных делать очень неудобно.