OCI8 Вопрос.

SWL
Дата: 05.12.2007 14:37:46
Есть связка VC++ 6.0 + Oracle 8i. В процессе ковыряний выясняется, что в нектороых случаях приходится использовать переменную типа __int64. И при выполнение SQL запроса вываливается ошибка "ORA-01438: значение большее, чем позволяет для этого столбца заданная точность".
Столбец типа NUMBER (lenght 22,precision 10,scale 0).
Биндил следующим образом
Привожу к типу double, и в BindByName указываю тип SQLT_FLT (был вариант с SQL_INT? но он тоже не прокатил).
Как корректней выкрутиться из этого?
Заранее спасибо.
Сергей Дорошенко
Дата: 05.12.2007 15:51:49
SWL
Есть связка VC++ 6.0 + Oracle 8i. В процессе ковыряний выясняется, что в нектороых случаях приходится использовать переменную типа __int64. И при выполнение SQL запроса вываливается ошибка "ORA-01438: значение большее, чем позволяет для этого столбца заданная точность".
Столбец типа NUMBER (lenght 22,precision 10,scale 0).
Биндил следующим образом
Привожу к типу double, и в BindByName указываю тип SQLT_FLT (был вариант с SQL_INT? но он тоже не прокатил).
Как корректней выкрутиться из этого?
Заранее спасибо.

у нас на прошлой работе мигрировали с ms sql на oracle. первая ошибка, появившаяся в приложениях очень напоминает ту, которую Вы описали. дальше - больше с другими типами данных. девелоперы просто исключили проверку типа данных при обработке ref_cursor.
OracleX
Дата: 06.12.2007 15:25:19
SWL
Дата: 07.12.2007 15:52:27
Всем спасибо, проблема решилась. Можно закрывать