Delphi+MSSQL, Проблема с DECIMAL/ftBCD полем/параметром |
Здравствуйте, гость ( Вход | Регистрация )
Delphi+MSSQL, Проблема с DECIMAL/ftBCD полем/параметром |
27.12.2007 - 00:23
Вставить ник | Быстрая цитата | Сообщение
#1
|
|
Продвинутый новичок Группа: Участник Сообщений: 44 Регистрация: 12.08.2005 Пользователь №: 9292 |
Народ, помогите кто-нибудь, незатейливый вопрос. В Delphах есть формочка на которой имеется поле ввода
Edit: TDBNumberEditEh и ADOStoredProcedure (обращается к процедуре Proc1 в БД). В базе есть табличка с полем Field1 типа DECIMAL(10, 4). В процедуре, соответственно, есть параметр @Field1 типа DECIMAL(10, 4). При её выполнении, поле Field1 должно проапдейтиться. В форме, в режиме диалога с пользователем, значение поля задаётся и потом подставляется в параметр: ADOStoredProcedure.Parameters.ParamByName('@Field1').Value := Edit.Value; Но при попытке выполнить процедуру, в базе возникает ошибка конвертации из типа money в decimal. Поле Edit и параметры процедуры заполняются автоматом из базы, т.е. типы подхватываются сами. К примеру, тип параметра @Field1 ftBCD. Но если в отладчике посмотреть, какой тип он имеет непосредственно перед выполнением хранимой процедуры, то тип там ftCurrency. Заколебался втыкать в чём фишка. Может кто сталкивался.... Delphi 7, SQL Server 2000 (sp3 точно, насчет 4-го не знаю) Сообщение отредактировано Гипотенуза - 27.12.2007 - 00:26 |
|
|
28.12.2007 - 20:51
Вставить ник | Быстрая цитата | Сообщение
#2
|
|
Продвинутый новичок Группа: Участник Сообщений: 44 Регистрация: 12.08.2005 Пользователь №: 9292 |
Море ответов, спасибо всем. Разобрался я с этой фигнёй. Дело тут в том, что поле
DECIMAL(N, M) при попытке записать туда превосходящее по размерности значение даёт ошибку конвертации из типа money в decimal |
|
|
Текстовая версия | Сейчас: 29.03.2024 - 18:25 |