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

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

Таблица и EOF [D7, Access]


Morgan128 ©   (2011-02-20 20:49:00) 

Народ, помогите, съел уже весь мозг.
Есть в Аксесе таблица, в ней 4 поля.
При открытии программы делаю:
procedure TForm1.FormCreate(Sender: TObject);
begin
Table2.Open;
Table2.First;
While NOT Table2.Eof do
 begin
   CBox1.Items.Add(Table2['name']);
   Table2.Next;
 end;
Table2.Close;
end;

Отрабатывает на ура.
Но потом, в другой процедуре выполняю поиск по этой же таблице:
Table2.Open;
     Table2.First;
     While not Table2.EOF do ...

И сразу вылетаю из цикла, так как Table2.EOF = True. Как такое возможно сразу после открытия и команды First?


Anatoly Podgoretsky   (2011-02-20 21:29:00) [1]


> Только не надо про SQL.

Так ты еще и SQL использовать не хочешь.


Morgan128   (2011-02-20 21:26:00) [2]

2 И. Павел
1. спс, попробую
2. что делать, привычка. Для маленькой БД можно и так обойтись.


И. Павел   (2011-02-20 21:23:00) [3]


> чем не поиск перебором записей таблицы?
> Только не надо про SQL.

А еще можно ходить вверх ногами, на руках. Но далеко так не уйти...


И. Павел   (2011-02-20 21:22:00) [4]


> Morgan128   (20.02.11 20:49)

Просто выведите таблицу в какой-нибудь DataSet, поставьте abort после второго open и посмотрите, отображается ли что-нибудь в DataSet.


> While NOT Table2.Eof do
>  begin
>    CBox1.Items.Add(Table2['name']);
>    Table2.Next;
>  end;

Велосипед. Так делать полезно только в редких случаях, а в общем случае для этого есть LoockupListBox). А для поиска  есть Locate.


Morgan128   (2011-02-20 21:21:00) [5]


> sniknik ©   (20.02.11 21:11) [5]
>
> > Table2
> ???
> как вы уже достали... фильтр небось стоит...
>
> сначала игнорируют все возможные советы/правила/доку/хелп,
>   после "съедают весь мозг".

ответ не специалиста а ленивого троля :)
Фильтров на этой таблице нет вообще, иначе бы указал.


Morgan128   (2011-02-20 21:20:00) [6]

Первая описанная процедура работает. Почему вторая нет?


Morgan128   (2011-02-20 21:19:00) [7]

чем не поиск перебором записей таблицы?
Только не надо про SQL.


sniknik   (2011-02-20 21:13:00) [8]

> выполняю поиск по этой же таблице:
> ...
> While not Table2.EOF do
поиск так не делается.


sniknik   (2011-02-20 21:11:00) [9]

> Table2
???
как вы уже достали... фильтр небось стоит...

сначала игнорируют все возможные советы/правила/доку/хелп,  после "съедают весь мозг".


Morgan128   (2011-02-20 21:09:00) [10]


> Другой запрос, другой компонент.

Полезный, вдумчивый ответ.


Anatoly Podgoretsky   (2011-02-20 21:06:00) [11]

> Morgan128  (20.02.2011 20:49:00)  [0]

Другой запрос, другой компонент.


Morgan128   (2011-02-20 21:02:00) [12]

в таблице 4 записи, не пустые. в комбобокс добавляются все 4 нормально, и видно их все.


clickmaker   (2011-02-20 20:53:00) [13]

> Как такое возможно сразу после открытия и команды First?

когда таблица пустая


Наверх

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