Конференция "Начинающим" » Таблица и EOF [D7, Access]
 
  • Morgan128 (20.02.11 20:49) [0]
    Народ, помогите, съел уже весь мозг.
    Есть в Аксесе таблица, в ней 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?
  • clickmaker © (20.02.11 20:53) [1]
    > Как такое возможно сразу после открытия и команды First?

    когда таблица пустая
  • Morgan128 (20.02.11 21:02) [2]
    в таблице 4 записи, не пустые. в комбобокс добавляются все 4 нормально, и видно их все.
  • Anatoly Podgoretsky © (20.02.11 21:06) [3]
    > Morgan128  (20.02.2011 20:49:00)  [0]

    Другой запрос, другой компонент.
  • Morgan128 (20.02.11 21:09) [4]

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

    Полезный, вдумчивый ответ.
  • sniknik © (20.02.11 21:11) [5]
    > Table2
    ???
    как вы уже достали... фильтр небось стоит...

    сначала игнорируют все возможные советы/правила/доку/хелп,  после "съедают весь мозг".
  • sniknik © (20.02.11 21:13) [6]
    > выполняю поиск по этой же таблице:
    > ...
    > While not Table2.EOF do
    поиск так не делается.
  • Morgan128 (20.02.11 21:19) [7]
    чем не поиск перебором записей таблицы?
    Только не надо про SQL.
  • Morgan128 (20.02.11 21:20) [8]
    Первая описанная процедура работает. Почему вторая нет?
  • Morgan128 (20.02.11 21:21) [9]

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

    ответ не специалиста а ленивого троля :)
    Фильтров на этой таблице нет вообще, иначе бы указал.
  • И. Павел © (20.02.11 21:22) [10]

    > 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.
  • И. Павел © (20.02.11 21:23) [11]

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

    А еще можно ходить вверх ногами, на руках. Но далеко так не уйти...
  • Morgan128 (20.02.11 21:26) [12]
    2 И. Павел
    1. спс, попробую
    2. что делать, привычка. Для маленькой БД можно и так обойтись.
  • Anatoly Podgoretsky © (20.02.11 21:29) [13]

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

    Так ты еще и SQL использовать не хочешь.
 
Конференция "Начинающим" » Таблица и EOF [D7, Access]
Есть новые Нет новых   [134433   +22][b:0][p:0.001]