На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное 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!
            Цитата MIF @
            Для точного совпадения используй оператор =._

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

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


                  Рейтинг@Mail.ru
                  [ Script execution time: 0,0295 ]   [ 17 queries used ]   [ Generated: 28.03.24, 18:51 GMT ]