Сообщения пользователю

Тема в разделе "Delphi - Базы данных", создана пользователем vas, 17 авг 2010.

Статус темы:
Закрыта.
  1. vas

    vas Гость

    Доброго времени суток. Столкнулся с такой проблемой. Delphi7,ADO. Осуществляю выборку из ADOQuery:

    procedure TForm4.SpeedButton4Click(Sender: TObject);
    begin
    if Length(Edit1.Text)>0 then
    begin
    DataModule6.Query_Country.Active:=false;
    DataModule6.Query_Country.SQL.Clear;
    DataModule6.Query_Country.SQL.Add('SELECT * FROM Country WHERE Country LIKE '+#39+Edit1.Text+'%'+#39);
    DataModule6.Query_Country.Active:=true;
    end;

    Все супер работает.
    Если такой записи нет мне надо пользователю сообщить,что то,что он ищет,не существует в базе,т.е. вывести сообщение типа:"Такой записи нет!"
    Добавляю код:

    begin
    if MessageBox(Application.Handle,
    PChar('Такой записи нет!'),
    PChar ('Архив ver.1.0'),MB_OK+MB_ICONINFORMATION)=IDOK then
    begin
    DataModule6.Query_Country.Active:=false;
    DataModule6.Query_Country.SQL.Clear;
    DataModule6.Query_Country.SQL.Add('SELECT * FROM Country');
    DataModule6.Query_Country.Active:=true;
    end;

    Вот тут-то и начинается проблема. Ввожу имеющееся в справочнике значение, программа отрабатывает, показывает запись, но следом идет сообщение "Такой записи нет!".
    Подскажите,пожалуйста, что я делаю неправильно.
    Спасибо
     
  2. V88

    V88 Well-Known Member

    Регистрация:
    22 окт 2008
    Сообщения:
    51
    Симпатии:
    0
    А не проще бы было просто проверить пустой или нет Query:
    Код (Delphi):
    if DataModule6.Query_Country.IsEmpty // если пустой
    then begin
    MessageBox('Такой записи нет!',mtInformation,[mbOk],0);
    .... //то сообщаем пользователь, что 'Такой записи нет!'
    end;
     
  3. etc

    etc Гость

    И не то и не туда добавили.
     
  4. vas

    vas Гость

    Спасибо всем ответившим, вопрос закрыт следующим образом:
    Код (Text):
    procedure TForm4.SpeedButton4Click(Sender: TObject);
    begin
    if Length(Edit1.Text)>0 then
    with DataModule6.Query_Country do
    begin
    Active:=false;
    SQL.Clear;
    SQL.Add('SELECT * FROM Country WHERE Country LIKE '+AnsiQuotedStr(Edit1.Text+'%', ''''));
    Active:=true;
    if IsEmpty then
    Application.MessageBox('Такой записи нет', 'Архив ver.1.0', MB_OK+MB_ICONINFORMATION);

    end;
    end;
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей