2014-12-15 4 views
0

У меня возникла проблема с использованием Crystal Reports для извлечения данных из базы данных MySQL.Какое преобразование данных может выполняться между клиентским программным обеспечением и целевой БД при использовании ODBC?

В этом случае Crystal подключается к базе данных MySQL с использованием ODBC, а промежуточное ПО ODBC построено с использованием Progress DataDirect.

Целевая БД имеет таблицу, в которой поле имеет целочисленные значения, такие как «2014» и «2015». Однако, когда я проверяю значения в этом поле в Crystal (используя функцию «Обзор данных»), он показывает значения как «14.00» и «15.00».

Это поле используется в инструкции SELECT, хранящейся в Crystal, и этот оператор ограничивает записи теми, где значение равно «2015». В результате в отчете нет записей, потому что Crystal не видит правильные значения.

Изменение инструкции SELECT для извлечения всех записей, где год «15» (или «15.00») также не помогает. Я предполагаю, что это связано с тем, что БД не содержит записей с этим значением.

Таким образом, в целом ситуация:

  1. Использование «15» или «15,00» в ЗЕЬЕСТ: сбой в БД из-за каких-либо записей с этим значением
  2. использования «2015» в окне выбора заявление: сбой внутри Кристалл, который видит значение как «15,00»

Есть ли некоторые функции на уровне ODBC, которые могут вызвать эту ситуацию?

ответ

0

Вы можете разыгрывать эти целые числа в строку:

SELECT CAST(y AS CHAR) FROM mytable 

Таким образом, все преобразования должны быть сделаны на стороне сервера.