На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное DigiMania RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Обязательно указание:
1) типа базы данных (Paradox/Oracle/Interbase и т.п.)
2) способа доступа к базе данных (ODBC/ADO/DAO/BDE и т.п.)
Например: Paradox/BDE, MS Access/ADO

Наиболее часто задаваемые вопросы:
Базы даных для начинающих. Первые шаги. Понятие о BDE.
Переход на клиент-сервер и начала ADO
Приёмы работы с BLOB (OLE/Memo) полями
Запросы и параметры или как избавиться от многих проблем. Проблемы с датами в запросах.
Нужели мне нужно устанавливать BDE? (или почему не работает программа на другом компьютере)
Модераторы: Bas, Rouse_
  
> Не фильтрует ADOTable
    Раньше работал с локальной базой access и пользовался фильтром
    ExpandedWrap disabled
        form1.ADOTable1.Filtered:=false;
        form1.ADOTable1.Filter:='smena  LIKE ' + #39 + '1'+ #39;
        form1.ADOTable1.Filtered:=true;

    в результате я получал отфильтрованную по условию таблицу

    теперь перехожу на удалённую базу MYSQL на сервере. При выполнении данного кода я получаю НОЛЬ результатов, хотя в таблице есть записи, удовлетворяющие этим условиям.
    Как с помощью ADOTable отфильтровать записи на удалённой MYSQL?
      Вот такая строка фильтрует
      ExpandedWrap disabled
        form1.ADOTable1.Filter:='(smena LIKE ''' + '1' + '%'')';

      ... но фильтрует не как ТОЧНОЕ_СОВПАДЕНИЕ, а как НАЧИНАЕТСЯ_С
      а мне нужно по точному совпадению.
        Для точного совпадения используй оператор =._
        Мои религиозные убеждения не позволяют мне комментировать код.
        Моё мировоззренье таково: в программе комментария ни одного!
          Забудь про TADOTable и научись пользоваться TADOQuery!
          ...one shot at glory in the crossfire overhead...© JP
            Цитата MIF @
            Для точного совпадения используй оператор =._

            а можно пример строки, а то не понял где это вставлять
              Решено.
              На стороне БД нужно было заменить тип поля TEXT на TINYTEXT
              После этого начало нормально фильтровать по полному совпадению
                Цитата dreyqq @
                На стороне БД нужно было заменить тип поля TEXT на TINYTEXT
                Оригинальное решение. Судя по названиям типов данных ты поле длинного текста (а короче - BLOB-поле) поменял на строку (VARCHAR). Наверное разработчик БД о таком варианте даже не думал.
                ЗЫ - или разработчик БД - ты сам???
                ...one shot at glory in the crossfire overhead...© JP
                  Цитата LMM @

                  Это база mysql под debian8. Поднимал базу сам.
                  Это через phpmyadmin в настройках типа поля.
                  Сообщение отредактировано: dreyqq -
                  1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                  0 пользователей:


                  Рейтинг@Mail.ru
                  [ Script Execution time: 0,1003 ]   [ 15 queries used ]   [ Generated: 15.11.18, 08:25 GMT ]