Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
BDE перечитывает запрос ?
|
|||
|---|---|---|---|
|
#18+
Заранее прошу прощения если мой вопрос глупый или ответ на него общеизвестен. Я открываю в Delphi (через BDE) два запроса к одной и той же таблице содержащей около 500000 записей. (Буквально - select * from MyTable) Первый запрос открывается быстро (меньше секунды), но когда я открываю второй запрос (такой же) к этой таблице это длится несколько минут. Если перед выполнением второго запроса закрыть первый то все нормально. В чем причина? Я встречал нечто подобное с Interbase, там были проблемы с тем что BDE перечитывает запроc при выполнении Commit т.к. IB перед Commit'ом закрывает все курсоры. Здесь что-то подобное? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2002, 12:41 |
|
||
|
BDE перечитывает запрос ?
|
|||
|---|---|---|---|
|
#18+
Перед открытием второго запроса BDE зафетчивает все недофетченные записи первого, иначе по-другому не может открыть другой запрос в той же сессии. Раньше до версии 5, BDE просто давало ошибку в таком случае. Вопрос в другом - зачем запрашивать столько записей, если они тебе не нужны? Так не делают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2002, 13:36 |
|
||
|
BDE перечитывает запрос ?
|
|||
|---|---|---|---|
|
#18+
Ну конечно это я привел просто пример доведенный до абсурда... чтобы не запутывать вопрос. На самом деле был запрос с условием и сортировкой, в котором мне нужно были только первые записи. (Отфильтровать "снизу" было трудно) В IB это катило (там можно открыть несколько запросов). Здесь я так понимаю нужно просто использовать SELECT TOP .. для того чтобы отобрать сколько мне нужно. Правильно ли я понимаю, что MS SQL фактически позволяет в одном подключении к БД иметь только один открытый запрос ? Когда я сделал запросам Unidirectional мне BDE прямо так и сказало - "connection used by another statement". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2002, 14:27 |
|
||
|
BDE перечитывает запрос ?
|
|||
|---|---|---|---|
|
#18+
В M$ SQL7 - да ) Но че-то есть слухи что в 2000 можно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2002, 14:38 |
|
||
|
BDE перечитывает запрос ?
|
|||
|---|---|---|---|
|
#18+
Может, дело не в MS SQL, а в BDE? По-моему через ADO с одного коннекта открывается столько запросов, сколько пропишешь. Или я чего-то не понимаю (с BDE не приходилось работать), и "подключение" BDE и connection ADO - разные вещи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2002, 15:27 |
|
||
|
BDE перечитывает запрос ?
|
|||
|---|---|---|---|
|
#18+
Вот это и интересно... в принципе может быть и BDE. В общем-то ADO и BDE - фактически две вещи которые делают одно и то же (служат "посредником" между прикладной программой и MS-SQL) Кстати я пробовал подключаться через ODBC -> BDE - результат такой же. Но с другими серверами BDE таких вещей не делает... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2002, 16:04 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32026031&tid=1823409]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
50ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 229ms |
| total: | 373ms |

| 0 / 0 |
