Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Ошибка при фильтрации таблицы MySQL в С++ (abtat) 03/04/2012 - 13:54:28
      Re: Ошибка при фильтрации таблицы MySQL в С++ (Akina) 04/04/2012 - 10:43:59
      Re: Ошибка при фильтрации таблицы MySQL в С++ (зайчег) 06/10/2012 - 18:31:30



From: abtat - 03/04/2012 - 13:54:28
Subject:Ошибка при фильтрации таблицы MySQL в С++
-----------------
Таблица базы данных на сервере 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 на той же базе и в
той же программной среде выполняется без ошибок. В чем дело?


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
41736



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |