Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Как отобразить запись из таблицы


Автор: Boyur 30.5.2012, 23:45
Я допустим могу отобразить 1-ую запись таким образом: ADOTable1.FieldByName('login').AsString
А как мне отобразить запись под id 2 или 3 и т.д?

Код

if (Edit1.Text=ADOTable1.FieldByName('login').AsString) and (Edit2.Text=ADOTable1.FieldByName('pass').AsString)
    then
      begin
      // Form2.Show;
      // Form1.Visible:=false;
       Form_general.Show;
       Form_login.Visible:= False;
      end
    else
    ShowMessage('Ошибка!');


А еще лучше, как сделать чтобы проверились все запись. У меня тут проверка логина и пароля. Проверяет только первую запись. Нужно чтобы проверились  все логины и пароли которые есть в таблице.

Автор: Данкинг 30.5.2012, 23:59
Запросом проверяй.
Код

AdoQuery.Close;
AdoQuery.SQL.Text:='select * from Table where login='+quotedstr(Edit1.Text)+' and pass='+quotedstr(Edit2.Text);
AdoQuery.Open;
if AdoQuery.RecordCount<>0 then
 begin
  ...
 end;

Автор: Boyur 31.5.2012, 00:12
Пишет ошибка синтексаса в предложении FROM :(
У меня база Access

Автор: superVad 31.5.2012, 00:16
Boyur, название таблицы на свою поменял?

Автор: Boyur 31.5.2012, 00:17
Разобрался... я Table на свою не изменил.
Спасибо!

Автор: DYUMON 31.5.2012, 09:34
если у тебя ttable  то можеше сделать locate по двум полям 

Автор: Boyur 31.5.2012, 11:55
Подскажите вот еще что.
Я хочу вывести что ни будь из базы, пытаюсь вот так:
Код

Label1.Caption:=ADOTable1.FieldByName('name').AsString;

Но у меня появляется ошибка: Accsess violation at address 00566CFB in module '123.exe'. Read of address 00000000. 

И вот например у нас таблица:
id  name  ocenka
1   Вася        3
2   Петя        4
3   Толик      5

Как мне вывести имя "Петя", Строка 2, столбец name?

Автор: Boyur 31.5.2012, 12:23
Получилось вывести первую запись:
Код

ADOTable1.First;//переход на первую запись
Label1.Caption:=ADOTable1.FieldByName('fio').AsString;


А можно какнибуть указать чтобы он перешел сразу на нужную строчку, а не на первую?
Или только перебором c помощью ADOTable1.Next; ?

Автор: Данкинг 31.5.2012, 12:45
Цитата(Boyur @  31.5.2012,  13:23 Найти цитируемый пост)
чтобы он перешел сразу на нужную строчку

Код

ADOTable1.Recno:=10;

Автор: Boyur 31.5.2012, 12:54
Работает, спасибо.

Автор: Boyur 31.5.2012, 13:35
Код

AdoQuery.Close;
AdoQuery.SQL.Text:='select * from Table where login='+quotedstr(Edit1.Text)+' and pass='+quotedstr(Edit2.Text);
AdoQuery.Open;
if AdoQuery.RecordCount<>0 then
 begin
  ...
 end;


Используя этот запрос, я могу записать в переменную id строки в каторой он нашел совпадения?

Автор: Данкинг 31.5.2012, 14:45
Цитата(Boyur @  31.5.2012,  14:35 Найти цитируемый пост)
Используя этот запрос, я могу записать

Это запрос на выборку. Записать им ничего нельзя.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)