Добрый день.
Есть код, который осуществляет поиск по набранному номеру (колонка abonenta) в таблице billing за период даты (колонка Date, sDateEdit1.Text - начальная дата, sDateEdit2.Text - конечная дата)
Код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | procedure TForm1 . Button1Click(Sender: TObject);
var
sql: string ;
begin
ADOQuery1 . Close;
ADOQuery1 . SQL . Clear;
sql:= 'SELECT * FROM billing where [abonenta]=' '' +Edit1 . Text+ '' ' and Date >= ' '' +sDateEdit1 . Text+ '' ' and date <= ' '' +sDateEdit2 . Text+ '' '' ;
ADOQuery1 . SQL . Add(sql);
try
ADOQuery1 . Open;
except
application . MessageBox( 'Не могу выполнить запрос' , 'Ошибка' ,MB_OK);
end ;
end ;
|
и есть запрос
Код:
1 | sql:= 'SELECT * FROM billing where [abonenta]=' '' +Edit1 . Text+ '' ' and Date >= ' '' +sDateEdit1 . Text+ '' ' and date <= ' '' +sDateEdit2 . Text+ '' '' ;
|
который не правильно работает. Если я хочу найти набранный номер по всей таблице, я не устанавливаю начальную и конечную даты. И когда я нажимаю кнопку "найти", на DBGrid ни чего не выводится. Хотя данные по этому номеру точно есть. И также, если я хочу найти набранный номер по всей таблице с начальной датой, то тоже на DBGrid ни чего не выводит.
Я понимаю что сам запрос не идеален, поэтому прошу вас усовершенствовать данный запрос.