На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела C/C++: Базы данных
Модераторы: B.V.
  
    > Фильтрация таблицы MySQL , Возникает ошибка при попытке фильтрации таблицы, хотя части фильтра работают и SQL запрос с тем же фильтром тоже
      Таблица базы данных на сервере MySQL 5.5 имеет 1 поле даты RegDate,
      3 smallint поля кодов исполнителей ManNumM, ManNum1M и ManNum2M и ряд
      информационных полей. Программа на C++ Builder 2010, связь с базой данных
      идет через MySQL ODBC 5.1 Driver и компонент C++ TADOTable. Надо отфильтровать
      записи по исполнителю в интервале дат, причем нужный исполнитель может
      оказаться в любом из трех полей ManNum.
      Фильтр
      Filter = String("ManNumM = '") + ManNum +
      String("' OR ManNum1M = '") + ManNum +
      String("' OR ManNum2M = '") + ManNum + "'";
      и фильтр
      Filter = String("(ManNumM = '") + ManNum +
      String("') AND RegDate >= '") + FormDateString(BegDate) +
      String("' AND RegDate <= '") + FormDateString(EndDate) + "'";
      успешно работают, а фильтр
      Filter = String("(ManNumM = '") + ManNum +
      String("' OR ManNum1M = '") + ManNum +
      String("' OR ManNum2M = '") + ManNum +
      String("') AND RegDate >= '") + FormDateString(BegDate) +
      String("' AND RegDate <= '") + FormDateString(EndDate) + "'";
      вызывает сообщение об ошибке
      "Аргументы имеют неверный тип, выходят за пределы допустимого
      диапазона или вступают в конфликт друг с другом"
      Во всех трех фильтрах используются одни и те же аргументы. Фильтр, вызывающий
      ошибку, имеет значение:
      "(ManNumM = '24' OR ManNum1M = '24' OR ManNum2M = '24' ) AND
      RegDate >= '2012-02-02' AND RegDate <= '2012-03-26'"
      SQL запрос с таким же значение фильтра в выражении Where на той же базе и в
      той же программной среде выполняется без ошибок. В чем дело? Как заставить фильтр работать?
      1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
      0 пользователей:


      Рейтинг@Mail.ru
      [ Script execution time: 0,0360 ]   [ 15 queries used ]   [ Generated: 27.05.24, 07:21 GMT ]