На главную
ПРАВИЛА 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,1079 ]   [ 20 queries used ]   [ Generated: 18.08.18, 22:18 GMT ]