![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]() ![]()
Вставить ник | Быстрая цитата | Сообщение
#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 |
|
|
![]()
Вставить ник | Быстрая цитата | Сообщение
#2
|
|
![]() Продвинутый новичок ![]() ![]() Группа: Участник Сообщений: 44 Регистрация: 12.08.2005 Пользователь №: 9292 ![]() |
Море ответов, спасибо всем. Разобрался я с этой фигнёй. Дело тут в том, что поле
DECIMAL(N, M) при попытке записать туда превосходящее по размерности значение даёт ошибку конвертации из типа money в decimal |
|
|
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 6.07.2025 - 11:39 |