2012-02-07 2 views
0

У меня есть база данных приложений Delphi, которая находится в Oracle. Теперь есть хранимая процедура, у нее есть параметр IN с именем PARAM1 из NUMBER.ORACLE- Точность и масштаб числового параметра

Как я полагаю, мы не можем указать точность и масштаб для параметров. Но таким образом на стороне Delphi параметр появляется как float. На самом деле мне это нужно как целое.

Что мне нужно для этого?

+1

Можете ли вы внести изменения в хранимую процедуру? Если это так, просто измените параметр, чтобы принять 'PARAM1' как тип данных' INTEGER'. – Ollie

+0

Не верно ли значение, возвращаемое функцией 'Trunc (aFloat)'? –

+0

Какая версия Delphi и какие компоненты доступа вы используете? –

ответ

3
  1. В общем, вы можете использовать %TYPE, чтобы указать «ограниченный» тип данных для параметра. Если ваш параметр имеет целочисленный тип данных, укажите BINARY_INTEGER или PLS_INTEGER как тип данных параметров.
  2. Тип данных на стороне клиента (TParam.DataType) зависит от компонентов доступа к данным, версий Oracle и даже Delphi. Лучше всего предоставить эту информацию.
  3. ftFloat тип данных cons - это может привести к утере точности. Если это проблема, вы можете установить DataType руками. Также вы можете использовать свойства параметра AsXxxx для более удобного назначения значения параметра.
+0

Параметры, определенные как '% type', не обеспечивают длину и точность исходного столбца. – Allan

Смежные вопросы