Форум: "Начинающим";
Текущий архив: 2008.03.30;
Скачать: [xml.tar.bz2];
ВнизADO Найти похожие ветки
← →
DimOk (2008-03-03 09:34) [0]Доброго времени суток вам мастера. Скажите пожалуйсто как можно ускорить работу ADO. У меня ситуация следующая - таблица имеет около 20 тысяч записей, после того как я пишу ADOTable.Activate := True; сижу и смоотрю в монитор минут пять, при чем на достаточно хорошм железе.... Все настройки компонента по умолчанию, за исключением Connection
← →
Сергей М. © (2008-03-03 09:44) [1]Для начала откажись от TADOTable в пользу TADOQuery или TADODataSet.
> за исключением Connection
Покажи дословный текст строки коннекта
← →
Sergey13 © (2008-03-03 09:45) [2]> [0] DimOk (03.03.08 09:34)
> Скажите пожалуйсто как можно ускорить работу ADO
Это винда глючит и/или железо слабое.
Еще вариант (редко встречается) - плохо написана программа, например используются неправильные приемы работы с БД.
← →
DimOk (2008-03-03 09:47) [3]
> Покажи дословный текст строки коннекта
Provider=VFPOLEDB.1;Data Source=D:\SAFE\BEST\BASE\FILINEW\SCLAD;Mode=Share Deny None;Extended Properties="";User ID="";Password="";Mask Password=False;Cache Authentication=False;Encrypt Password=False;Collating Sequence=MACHINE;DSN=""
← →
Сергей М. © (2008-03-03 09:51) [4]
> DimOk (03.03.08 09:47) [3]
Коннектом управляешь явно или неявно ?
← →
DimOk (2008-03-03 09:53) [5]
> Коннектом управляешь явно или неявно ?
Я не знаю, явно или нет, но строку подключения я собрал в визарде, а свойство Connected := True установленно в Object Inspector
← →
Сергей М. © (2008-03-03 09:56) [6]
> DimOk (03.03.08 09:53) [5]
Значит явно.
И собственно коннект (а не открытие таблицы) при этом происходит мгновенно ?
← →
DimOk (2008-03-03 09:59) [7]
> И собственно коннект (а не открытие таблицы) при этом происходит
> мгновенно ?
Да. А таблица "активизирутся" очень медленно
← →
Сергей М. © (2008-03-03 10:01) [8]DataSource-компонент при этом отключен от TADOTable ?
← →
DimOk (2008-03-03 10:03) [9]
> DataSource-компонент при этом отключен от TADOTable ?
Да, его нет вообще - потому что данные не выводятся пользователю...
← →
Сергей М. © (2008-03-03 10:04) [10]Приведи значения св-в
Filter, Filtered, IndexName ..
← →
Kolan © (2008-03-03 10:05) [11]Так а если через запрос(TADODataSet), ты проверил или нет?
← →
DimOk (2008-03-03 10:06) [12]
> Приведи значения св-в
> Filter, Filtered, IndexName ..
Object Inspector
Filter - пусто
Filtered - False
IndexName - пусто
← →
Sergey13 © (2008-03-03 10:07) [13]> [7] DimOk (03.03.08 09:59)
> Да. А таблица "активизирутся" очень медленно
Подозреваю, что когда будет 40 тысяч записей будет еще медленнее. Переходи на АДОДатаСет и запросы.
← →
Kolan © (2008-03-03 10:07) [14]> Подозреваю, что когда будет 40 тысяч записей будет еще медленнее.
Лол, а мы все подозревали, что станет быстрее :)
← →
DimOk (2008-03-03 10:09) [15]
> Переходи на АДОДатаСет и запросы.
Та же песня.... Я уже пробовал, запрос мне не нужен т.к. надо заполднить контрол всеми значениями из одного поля одной таблицы.
← →
Сергей М. © (2008-03-03 10:09) [16]
> DimOk (03.03.08 10:06) [12]
Св-во Sort = ?
← →
Сергей М. © (2008-03-03 10:11) [17]
> надо заполднить контрол всеми значениями из одного поля
> одной таблицы.
Абалдеть !
Ты что, хочешь заставить юзера любоваться десятками тысяч строк одновременнно ?
Да ты садист, батенька)
← →
DimOk (2008-03-03 10:13) [18]
> Да ты садист, батенька)
Да нет :) Это номенклатурый справочник, просто хотелось при формировании отчета конкретизировать его по выбранной позиции..... ну это уже другая песня.. :)
← →
Сергей М. © (2008-03-03 10:13) [19]
> запрос мне не нужен
При условии
> всеми значениями из одного поля
как раз запрос тебе и нужен !
Причем он д.б. request live и unidirectional
← →
DimOk (2008-03-03 10:14) [20]
> Св-во Sort = ?
Незаданно
← →
DimOk (2008-03-03 10:14) [21]
> Св-во Sort = ?
Незаданно
← →
Сергей М. © (2008-03-03 10:14) [22]
> Это номенклатурый справочник
Ну и нафига юзеру обозревать его весь, если его интересует десяток-другой записей, отобранных по некоему критерию ?
← →
Сергей М. © (2008-03-03 10:16) [23]
> хотелось при формировании отчета конкретизировать его по
> выбранной позиции
Для выбора "позиции" существуеьт инкрементальный поиск, которыйЮ, в свою очередь, базируется на запросах.
← →
DimOk (2008-03-03 10:18) [24]
> Ну и нафига юзеру обозревать его весь, если его интересует
> десяток-другой записей, отобранных по некоему критерию ?
>
Возьмем 1С Предприятие. При формирования отчета пользователь может конкретизировать его по номеклатурной позиции и т.п.
← →
Сергей М. © (2008-03-03 10:19) [25]
> конкретизировать его по выбранной позиции
А сортировать этот список ты как собрался ?
Он же несортированный у тебя !
Ты что же, хочешь заставить юзера искать в этой двадчатитысячной солянке интересующую его строку ? Тогда ты точно садист)
← →
DimOk (2008-03-03 10:20) [26]
> Для выбора "позиции" существуеьт инкрементальный поиск,
> которыйЮ, в свою очередь, базируется на запросах.
У меня не только же позиция выбирается. И запросы есть. Но результат один и тот же - правильный, но очень "медленный".
← →
Kolan © (2008-03-03 10:21) [27]> И запросы есть.
Показывай запрос.
← →
Сергей М. © (2008-03-03 10:21) [28]
> Возьмем 1С Предприятие
Давай возьмем.
И копнув глубже увидим, что там для этой цели используется аналог дельфийского DBComboBox"a, коим у тебя и не пахнет, судя по тобой вышеизложенному.
← →
DimOk (2008-03-03 10:22) [29]
> Ты что же, хочешь заставить юзера искать в этой двадчатитысячной
> солянке интересующую его строку ? Тогда ты точно садист)
Это поможет мне в данной ситуации..... О том удобно или нет речи же не идет...:)
← →
Сергей М. © (2008-03-03 10:23) [30]
> У меня не только же позиция выбирается
А неважно.
Инкр.поиск на то и придуман, чтобы избавить юзера от необходимости шариться по спискам бешеных размеров.
← →
DimOk (2008-03-03 10:24) [31]
> Показывай запрос.
Запрос достаточно примитивный...
select nnum.mlabel, name.mlabel, kolpost.mkart from mlabel mkart where nnum.mlabel = nnum.mkart
← →
Kolan © (2008-03-03 10:25) [32]> Это поможет мне в данной ситуации… О том удобно или
> нет речи же не идет…:)
Тебе говорят, что если пльзователь хочет найти вермешель, то и надо делать:SELECT * FROM <Table>
WHERE FoodType = "вермешель";
а не давать ему все продукты сразу…
Переделай сабж с пом запроса, и доложи о результатах(незабудь показать сам запрос).
← →
Сергей М. © (2008-03-03 10:25) [33]
> том удобно или нет речи же не идет
Ну что ж .. смотри, кума, тебе жить)
Но почему не использован DBLookup/ComboBox - вот это совершенно непонятно и ничем не оправдано.
← →
DimOk (2008-03-03 10:26) [34]
> дельфийского DBComboBox"
С этим компонентом у меня работать не получилось, и я прибег к обычному ComboBoxу
← →
Kolan © (2008-03-03 10:27) [35]> select nnum.mlabel, name.mlabel, kolpost.mkart from mlabel
> mkart where nnum.mlabel = nnum.mkart
О, а тут джоин. Как же ты его с пом TADOTAble делал?
← →
Сергей М. © (2008-03-03 10:28) [36]
> where nnum.mlabel = nnum.mkart
А говоришь нет фильтрации)
Вот тебе и засада !
Индекса-то по полю nnum.mlabel нет и в помине)
← →
DimOk (2008-03-03 10:28) [37]
> Kolan © (03.03.08 10:25) [32]
Я не совсем понял вопроса, этот запрос не для поиска информации, а для создания конкретой выборки
← →
Kolan © (2008-03-03 10:28) [38]> С этим компонентом у меня работать не получилось, и я прибег
> к обычному ComboBoxу
От тут видимо и тормоза, все дело в долгм выводе в ComboBox…
← →
Сергей М. © (2008-03-03 10:29) [39]
> Как же ты его с пом TADOTAble делал?
Да, оч интересно было бы послушать на эту тему нач-ка транспортного цеха) ..
← →
Kolan © (2008-03-03 10:29) [40]> а для создания конкретой выборки
Так вот эту конкретную выборку хорошобы сокращать до минимума… Проблемма конечно именнов отсутствии индекстов или прорисовке на комбобоксе…
Страницы: 1 2 3 4 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.03.30;
Скачать: [xml.tar.bz2];
Память: 0.54 MB
Время: 0.039 c