Запрос в базе данных

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Ответить
alligator
Сообщения: 5
Зарегистрирован: 26 июн 2004, 01:30

Всем привет!
Делаю простенькую прогу баз данных.
Нужно сделать выборку по запросу:найти по дате абонента и вывести окно с его фамилией.
Почему код
------------
procedure TForm1.BitBtn3Click(Sender: TObject);
begin
if Table1['Data']= StrToDate(edit1.text)
then
begin
ShowMessage (Table1['Family']);
exit;
end
else
Showmessage('Абонента нет с введенной датой');

end;
----------
работает не правильно.
Подскажите,пожалуйста!
компоненты - Table1 (DatabaseName-AS; TableName - asa.db;
TableType -ttParadox)
DataSourse1 (DataSet -Table)
DBGrid1 (DataSourse-DataSourse1)
DBEdit1(DataSourse-DataSourse1;DataField-Family)
DBEdit2(DataSourse-DataSourse1;DataField-Telephone)
DBEdit3(DataSourse-DataSourse1;DataField-Data)
DBRichedit1 (DataSourse-DataSourse1;DataField-Adress)
DBNavigator (DataSourse-DataSourse1)
Edit1,BitBtn,BitBtn2,BitBtn3
Или может подскажите код с применением SQL.
Аватара пользователя
Игорь Акопян
Сообщения: 1440
Зарегистрирован: 13 окт 2004, 17:11
Откуда: СПБ
Контактная информация:

То, что ты делаешь при нажатии на кнопку - это проверка только текущей строки. Для поиска придётся делать цикл по всем записям

Код: Выделить всё

  with Table1 do
  begin
    First;
    while not EOF do
    begin
      if Table1['Data']= StrToDate(edit1.text) then 
      begin 
        ShowMessage (Table1.FieldByName('Family').AsString); 
        Break; 
      end 
      else 
        Showmessage('Абонента нет с введенной датой');
      Next;
    end;
  end;
Но такая проверка будет выводить первого найденного абонента
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

У TTable есть еще свойства Filter и Filtered

Можно так:

Table1.Filter = 'Data=" + edit1.text + '"';
Table1.Filtered = true;

В гриде останутся тотлько отфильтрованные записи.
Затем по другой кнопке

Table1.Filtered = false;

И все возвращается в исходное состояние;
Ответить