Показать сообщение отдельно
  #1  
Старый 15.12.2011, 11:32
royun royun вне форума
Прохожий
 
Регистрация: 19.08.2011
Сообщения: 28
Репутация: 10
По умолчанию Поиск по базе данных

Добрый день.

Есть код, который осуществляет поиск по набранному номеру (колонка abonenta) в таблице billing за период даты (колонка Date, sDateEdit1.Text - начальная дата, sDateEdit2.Text - конечная дата)

Код:
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;

и есть запрос

Код:
sql:= 'SELECT * FROM billing where [abonenta]='''+Edit1.Text+''' and Date >= '''+sDateEdit1.Text+''' and date <= '''+sDateEdit2.Text+'''';

который не правильно работает. Если я хочу найти набранный номер по всей таблице, я не устанавливаю начальную и конечную даты. И когда я нажимаю кнопку "найти", на DBGrid ни чего не выводится. Хотя данные по этому номеру точно есть. И также, если я хочу найти набранный номер по всей таблице с начальной датой, то тоже на DBGrid ни чего не выводит.

Я понимаю что сам запрос не идеален, поэтому прошу вас усовершенствовать данный запрос.
Ответить с цитированием