Всем привет!
Делаю простенькую прогу баз данных.
Нужно сделать выборку по запросу:найти по дате абонента и вывести окно с его фамилией.
Почему код
------------
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.
Запрос в базе данных
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
- Игорь Акопян
- Сообщения: 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;
И все возвращается в исходное состояние;
Можно так:
Table1.Filter = 'Data=" + edit1.text + '"';
Table1.Filtered = true;
В гриде останутся тотлько отфильтрованные записи.
Затем по другой кнопке
Table1.Filtered = false;
И все возвращается в исходное состояние;