Здравствуйте, гость ( Вход | Регистрация )

 
Тема закрытаНачать новую тему
> Delphi+MSSQL, Проблема с DECIMAL/ftBCD полем/параметром
Гипотенуза
сообщение 27.12.2007 - 00:23

Продвинутый новичок
**

Группа: Участник
Сообщений: 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

Продвинутый новичок
**

Группа: Участник
Сообщений: 44
Регистрация: 12.08.2005
Пользователь №: 9292


Море ответов, спасибо всем. Разобрался я с этой фигнёй. Дело тут в том, что поле

DECIMAL(N, M)

при попытке записать туда превосходящее по размерности значение даёт ошибку конвертации из типа money в decimal
Перейти в начало страницы
 
+Цитировать сообщение

Тема закрытаНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



RSS Текстовая версия Сейчас: 29.03.2024 - 18:25