![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Перебор записей в датасете. [XP]
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]В коде все правильно написанно.
Тогда зачем вопрос про ошибку?