![]() |
|
|
![]()
|
|
| Darksquall |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 326 Регистрация: 22.1.2004 Где: Москва Репутация: нет Всего: 4 |
Вопросик по ADO, если знаете помогите плиз. Есть БД состоящая из одной таблицы полей всего 5ть, но размер ее 1,5 гига, запрос из под accessa вытягивает нужную инфу минут за 15ть, аналогичный запрос из под Delphi 7, вылетает с неопознанной ошибкой через 13 минут, но если Бд брать поменьше то запрос отрабатывает даже из под Delphi. Что может быть? в аксессе то работает
|
|||
|
||||
| DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 5 Всего: 44 |
а дело в том что access читает данные по блочно, т.е. считал 100 записей в аперативку и ждет когда пользователь обратится к следующему блоку. Но это в теории, а как действительно работает это надо еще выяснить, но принцып должен быть такой. а вот о компонентах с закладки ADO врядли кто позаботился, скоее всего по тому, что СУБД относится к отряду локальных. на мой взгляд просто памяти нехватает что бы удовлетварить твой запрос!!! запрос не такой случайно? -
и это тебя бы устроело если бы твоя прога получала набор данных за это время? Это сообщение отредактировал(а) DimW - 18.2.2006, 16:30 |
|||
|
||||
| Dimich |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 247 Регистрация: 25.8.2004 Где: Брянск Репутация: 3 Всего: 7 |
1,5 гига это не для аксеса! Даже если это заработает, с другим намучаетесь. Подумайте над тем, чтобы СУБД сменить. А если это невозможно или вам не походит, то мой совет - оптимизация индексов и запроса. DimW скорее прав.
--------------------
Не работает - исправь, работает - не трогай!!! |
|||
|
||||
| Darksquall |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 326 Регистрация: 22.1.2004 Где: Москва Репутация: нет Всего: 4 |
Ага устраивает т.к. данные нужно вытянуть один раз, запрос конечно посложнее, сделал по другому, просто выгрузил результаты запроса в DBFник, а там уже данные мои. |
|||
|
||||
| CaNIBaLchik |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 8.2.2006 Где: Томск Репутация: нет Всего: нет |
Перейди не ADO.Net по возможности там должно сработать. а еще почитай там в ConnectionString можно параметр ставить, чтоб поболчно считывать, я сталкивался с подобным проблемом, только не помню сейчас. и првельно тебе сказали про |
|||
|
||||
| SergeBS |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1111 Регистрация: 10.6.2005 Где: Владимир Репутация: 11 Всего: 22 |
Darksquall,
Крутить commandtimeout, connectiontimeout в свои 15 минут, caсhesize - в разумное число. Но по-хорошему - однозначно переезжать на нормальный сервер. И искать свои грабли: не может человек интересоваться данными в 1.5 Гб - ему только на просмотр недели понадобятся. |
|||
|
||||
| Darksquall |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 326 Регистрация: 22.1.2004 Где: Москва Репутация: нет Всего: 4 |
МОжет, :-) задача такая, данные как раз бадут просматриваться ооочень долго и не одним человеком а толпой,получился справочник своеобразный. Да собсно задача решена Спасибо всем! |
|||
|
||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |