-
pushkin42 (03.12.12 01:21) [0]Собственно, ситуация такова.
D2010, FIB - 7.3, FB2.5 x64
Есть форма с кучей pFIBDataSet'ов. Все отрабатывают нормально.
Наблюдение №1: Собственно говоря, до сегодняшней загрузки и этот нормально отрабатывал, а поди ж ты. Содержит самый простой запрос - SELECT * FROM table, но работает только в режиме дизайнера, т.е. если вручную сделать его в Редакторе Active, данные на форме по запросу покажет.
Наблюдение №2: Если в runtime сделать неDataModule.DataSet.CloseOpen(True);
аForm.ComponentWithData.DataSource.DataSet.Open;
то данные в runtime загрузятся, но только один раз. Попытка закрыть и открыть датасет заново ни к чему не приводит.
Изображение сабжа:
http://img689.imageshack.us/img689/9710/wtf01.png
Собственно, вопрос. Как и на... т.е. зачем это так делает? -
Германн © (03.12.12 04:25) [1]А чем всё-таки вызвано активизация датасета в дизайнтайм?
И не нашел таки в TDataSet метода CloseOpen. -
pushkin42 (03.12.12 11:53) [2]
> А чем всё-таки вызвано активизация датасета в дизайнтайм?
Вручную ставишь в инспекторе Active - оно работает.
UPD Наблюдение №3: Датасет данные все-таки выбирает, т.к. если сделать так:
Dataset.First;
while not (Dataset.Eof) do begin
...
end;
данные выбираются и в ShowMessage (для примеру) показываются.
Наблюдение №4: Такая же петрушка происходит даже с DbGrid
> И не нашел таки в TDataSet метода CloseOpen.
>
>
Компонент TpFIBDataSet, я же уточнял... -
> Такая же петрушка происходит даже с DbGrid
1) разорвана связь между гридом и датасетом
2) отключены дбконтролы в датесете, может где "выключено" и забыто "включить"
3) без хрустального шара трудновато. по "наблюдениям" код не восстанавливается. -
Я тут подшаманил с кодом, как раз таки пункт 1 сработал... Но почему только на одной форме произошла такая ситуация? Остальные-то датасеты работают нормально... По пункту 2 - не совсем понял...
-
> По пункту 2 - не совсем понял...
значит не делаешь, значит 2-го пункта быть не может. тормоза только, возможно, но это другая тема без кода/хрустального шара обсуждению не подлежит.