Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Перебор записей в датасете. [XP]


Страницы:   1 2 3

AndreyBg ©   (2008-09-24 11:03:00) 

Что-то туплю я...
Вот это  работает (перебирает в прямом порядке)
  DataSet.First;
 while not DataSet.bofdo
 begin
    // Что-то делаем ..
   DSetTestType. Prior;
 end;

а вот это соответственно нет O_o

 DataSet.First;
 while not DataSet.eof do
 begin
    // Что-то делаем ..
   DSetTestType.Next;
 end;

Сразу позиционируется на последнюю запись.
Использую FIBPlus.
В приложении множество датасетов и везде все работает нормально, а в одном вот такой косяк. Уже час медитирую на это, не пойму в чем дело. Все свойства датасета идентичны свойствам остальных датасетов.
Подскажите, pls, в чем может быть дело?


AndreyBg   (2008-09-24 12:53:00) [21]

Все посмеялись, молодцы.
В наборе 8 записей!!!! А в комбик или, как я уже писал выше, в текстовый файл попадает только одна последняя запись.
комбик не стандартный - cbTestType: TcxComboBox;
Напомню (поясню, для невнимательных) свой первый пост.
 DSetTestType. First;
 while not DSetTestType. bofdo
 begin
   BoardTemplateTest := TComboObject.Create(DSetTestType.FBN('id_otkttype').AsInteger, DSetTestType.FBN('name').AsString );
   FrmTemplateAdd.cbTestType.Properties.Items.AddObject(BoardTemplateTest.Get_Name,  BoardTemplateTest);
   DSetTestType. Prior;
 end;

Выдает все 8 записей в комбик!
Я сам понимаю, что это бред, но оно работает!
И как уже говорил, в программе подобных циклов полным полно(в том числе, которые заполняют аналогичные комбики) и только с этим датасетом наблюдаю такой глюк.


MsGuns   (2008-09-24 12:52:00) [22]

>AndreyBg   (24.09.08 11:45) [10]

Это же надо так писать ! Вам, господин хороший, надо в хирурги. Гланды через анал вырезать. Фашистам.


Anatoly Podgoretsky   (2008-09-24 12:45:00) [23]


> неа, это я ошибся

Тогда вопрос, а зачем нам обсуждать не тот код?


Сергей М.   (2008-09-24 12:11:00) [24]


> Насчитал ОДНУ!


Страшно даже подумать о том, сколько а Автора пальцев оказалось)


Сергей М.   (2008-09-24 12:09:00) [25]

В общем как и всегда - начали за здравие, а продолжаем за упокой)


Поросенок Винни-Пух   (2008-09-24 12:07:00) [26]

пропертиес уже по барабану.
у него все верно. в нд одна запись, которая и попадает в комбо.


Johnmen   (2008-09-24 12:06:00) [27]


> FetchAll в настройка датасета равен true.

Это по-барабану...


Сергей М.   (2008-09-24 12:06:00) [28]


> cbTestType - это комбик


TComboBox что ли ?
А что такое cbTestType. Properties? У стандартного "комбика" нет такого св-ва ..


Поросенок Винни-Пух   (2008-09-24 12:05:00) [29]

В таблице всего 8 записей.

А запрос вернул одну.


Поросенок Винни-Пух   (2008-09-24 12:04:00) [30]

Насчитал ОДНУ!
FetchAll в настройка датасета равен true.


Значит все верно.


Поросенок Винни-Пух   (2008-09-24 12:03:00) [31]

Интереснее что вот это
cbTestType. Properties.Items


AndreyBg   (2008-09-24 12:03:00) [32]

Насчитал ОДНУ!
FetchAll в настройка датасета равен true.


Правильный$Вася   (2008-09-24 12:01:00) [33]


> TComboObject

что это?


Поросенок Винни-Пух   (2008-09-24 11:50:00) [34]

DSetTestType.CloseOpen(true);
DSetTestType.First;
while not DSetTestType.eof do
begin
  ShowMessage('Считай записи, загибая пальцы');

  BoardTemplateTest := TComboObject.Create(DSetTestType.FBN('id_otkttype').AsInteger, DSetTestType.FBN('name').AsString );
  FrmTemplateAdd.cbTestType.Properties.Items.AddObject(BoardTemplateTest.Get_Name,   BoardTemplateTest);
  DSetTestType.Next;
end;


Поросенок Винни-Пух   (2008-09-24 11:48:00) [35]

выводится только последняя.

и с чего ты вдруг решил что трабл в перечислении датасета?


AndreyBg   (2008-09-24 11:45:00) [36]

Блин, ну разводка так разводка.... делать мне больше нечего.
Вот оригинальный текст:
DSetTestType.CloseOpen(true);
 DSetTestType.First;
 while not DSetTestType.eof do
 begin
   BoardTemplateTest := TComboObject.Create(DSetTestType.FBN('id_otkttype').AsInteger, DSetTestType.FBN('name').AsString );
   FrmTemplateAdd.cbTestType.Properties.Items.AddObject(BoardTemplateTest.Get_Name,  BoardTemplateTest);
   DSetTestType.Next;
 end;

cbTestType - это комбик.
В таблице всего 8 записей. В комбик попадает только последняя. пробовал выводить эти записи в текстовый файл в этом же цикле. Ситуация аналогичная - выводится только последняя.


Правильный$Вася   (2008-09-24 11:43:00) [37]


>  // Что-то делаем ..

в этом черном ящике может быть что угодно, не только перепозиционирование


clickmaker   (2008-09-24 11:30:00) [38]

все это похоже на какую-то разводку...


Сергей М.   (2008-09-24 11:29:00) [39]


> В коде все правильно написанно


> Сразу позиционируется на последнюю запись


И где в этом "правильном" коде позиционирование на последнюю запись ?
На первую вижу - First, а где на последнюю ?


Поросенок Винни-Пух   (2008-09-24 11:18:00) [40]

В коде все правильно написанно.

Тогда зачем вопрос про ошибку?


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо