Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Использование LIKE при формировании SQL запроса [D6, dBase, FoxPro]


RRA ©   (2004-12-17 12:26:00) 

Как правильно задать условие частичного совпадения значения с помощью LIKE при формировании SQL запроса? Код, который ниже, отрабатывает правильно, когда данные поля и введенного значения абсолютно идентичны, а если ввести первые несколько символов, то ничего не находит. При чем точно известно, что эти первые символы введенного значения точно соответствуют первым символам в поле таблицы. (Delphi6/dBase тип поля - Character, поле ввода - TEdit)
В чем может быть казус?
Процедура:
procedure TmForm.Action_StartSearchExecute(Sender: TObject);
 begin
   mForm.Table1.Active := True;
   case MForm.RadioGroup_TS1.ItemIndex of
     0 :
        ............
     1 :
        ............
     2 :
        begin
          with mForm.Query1 do
            begin
              Query1.Close;
              Query1.SQL.Clear;
              Query1.SQL.Add('Select *');
              Query1.SQL.Add('FROM "DB_Drawing.dbf"');
              Query1.SQL.Add('WHERE NameObj LIKE "' + mForm.Edit_NameObj.Text +'" ');
              Open;
            end;
        end;
     3 :
        ............
     4 :
        ............
   end; // case

   if mForm.Query1.RecordCount = 0
      then MessageDlg('Ничего не найдено!', MtWarning, [mbOk],0)
      else
        begin
          mForm.TabSheet_Result.TabVisible := True;
          mForm.SM_Search_Result.Enabled := True;
          mform.PageControl.ActivePage := mForm.TabSheet_Result;
        end;
 end; //procedure


RRA   (2004-12-17 12:36:00) [1]

Понял, спасибо!


Johnmen   (2004-12-17 12:34:00) [2]

1. LocalSQL.hlp
2. В общем случае неверно
  > if mForm.Query1.RecordCount = 0 
  Надо if mForm.Query1.IsEmpty then


Александр Иванов   (2004-12-17 12:32:00) [3]

Еще ? и кроме того регистр.


ЮЮ   (2004-12-17 12:32:00) [4]

Например, LIKE 'коро%'


ЮЮ   (2004-12-17 12:30:00) [5]

LIKE [* | %] <SomeText> [* | %]
* или % - зависит от движка


Наверх

Титульная страница Поиск, карта сайта Написать письмо