Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.12.2010, 19:29   #1
postaveche
Пользователь
 
Регистрация: 30.08.2010
Сообщений: 77
По умолчанию Could not convert variant of type (UnicodeString) into type (Double)

Здравствуйте
есть такая проблема ... ввожу данные в базу, одна переменная DOUBLE а данные ввожу через TEDIT

При выполнение ругается
Could not convert variant of type (UnicodeString) into type (Double)

вот код

Код:
DataModule2.IBStoredProc1.StoredProcName:='ADD_ALG_SPECII';
DataModule2.IBStoredProc1.ParamByName('denumirea').Value := Edit1.Text;
DataModule2.IBStoredProc1.ParamByName('masa').Value := Edit2.Text;
DataModule2.IBStoredProc1.ParamByName('grupa').Value := DBLookupComboboxEh1.KeyValue;
DataModule2.IBStoredProc1.ParamByName('gen').Value := DBLookupComboboxEh2.KeyValue;
DataModule2.IBStoredProc1.ParamByName('s').Value := Edit3.Text;
DataModule2.IBStoredProc1.ParamByName('x').Value := Edit4.Text;
DataModule2.IBStoredProc1.ParamByName('o').Value := Edit5.Text;
DataModule2.IBStoredProc1.ParamByName('b').Value := Edit6.Text;
DataModule2.IBStoredProc1.ParamByName('a').Value := Edit7.Text;
DataModule2.IBStoredProc1.ParamByName('p').Value := Edit8.Text;
DataModule2.IBStoredProc1.ParamByName('g').Value := Edit9.Text;
DataModule2.IBStoredProc1.ParamByName('s_1').Value := Edit10.Text;

DataModule2.IBStoredProc1.ExecProc;
:masa - DOUBLE PRECISION

Как решить проблему или как правельно???
postaveche вне форума Ответить с цитированием
Старый 10.12.2010, 19:47   #2
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,762
По умолчанию

может при присваивании значения параметру это значение сразу приводить к нужному типу?
Код:
DataModule2.IBStoredProc1.ParamByName('denumirea').Value := strtofloat(Edit1.Text);
vovk вне форума Ответить с цитированием
Старый 10.12.2010, 19:53   #3
postaveche
Пользователь
 
Регистрация: 30.08.2010
Сообщений: 77
По умолчанию

пробовал и так то же самая ошибка вылетает
postaveche вне форума Ответить с цитированием
Старый 10.12.2010, 20:01   #4
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,762
По умолчанию

а так ?
Код:
DataModule2.IBStoredProc1.ParamByName('denumirea').AsFloat := strtofloat(Edit1.Text);
))
vovk вне форума Ответить с цитированием
Старый 10.12.2010, 20:09   #5
postaveche
Пользователь
 
Регистрация: 30.08.2010
Сообщений: 77
По умолчанию

это тоже пробовал ... ничего ... тоже самая ошибка вылетает
postaveche вне форума Ответить с цитированием
Старый 10.12.2010, 20:53   #6
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

а так?
Код:
DataModule2.IBStoredProc1.ParamByName(<поле>).Text := Edit2.Text;
_SERGEYX_ вне форума Ответить с цитированием
Старый 10.12.2010, 20:58   #7
postaveche
Пользователь
 
Регистрация: 30.08.2010
Сообщений: 77
По умолчанию

Цитата:
Сообщение от _SERGEYX_ Посмотреть сообщение
а так?
Код:
DataModule2.IBStoredProc1.ParamByName(<поле>).Text := Edit2.Text;
тоже самое ... есть еще какое то решение????
postaveche вне форума Ответить с цитированием
Старый 10.12.2010, 21:09   #8
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Из всего текста только две строки написаны правильно
Код:
DataModule2.IBStoredProc1.ParamByName('grupa').Value := DBLookupComboboxEh1.KeyValue;
DataModule2.IBStoredProc1.ParamByName('gen').Value := DBLookupComboboxEh2.KeyValue;
где число передается в число. Во всех остальных передается Text в Value. Скорее всего косяк здесь. Или в самой хранимой процедуре.
_SERGEYX_ вне форума Ответить с цитированием
Старый 10.12.2010, 23:05   #9
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

плюс еще небось и децималсепарейтор не выставлен правильно в программе чтобы преобразования проходили адекватно
soleil@mmc вне форума Ответить с цитированием
Старый 13.12.2010, 14:30   #10
postaveche
Пользователь
 
Регистрация: 30.08.2010
Сообщений: 77
По умолчанию

сделал вот так

Код:
DataModule2.IBStoredProc1.StoredProcName:='ADD_ALG_SPECII';
DataModule2.IBStoredProc1.ParamByName('denumirea').Value := Edit1.Text;
DataModule2.IBStoredProc1.ParamByName('masa').Value := StrToFloat(Edit2.Text);
DataModule2.IBStoredProc1.ParamByName('grupa').Value := DBLookupComboboxEh1.KeyValue;
DataModule2.IBStoredProc1.ParamByName('gen').Value := DBLookupComboboxEh2.KeyValue;
DataModule2.IBStoredProc1.ParamByName('s').Value := Edit3.Text;
if Edit4.Text<>'empty' then
DataModule2.IBStoredProc1.ParamByName('x').Value := StrToFloat(Edit4.Text);
if Edit5.Text<>'empty' then
DataModule2.IBStoredProc1.ParamByName('o').Value := StrToFloat(Edit5.Text);
if Edit6.Text<>'empty' then
DataModule2.IBStoredProc1.ParamByName('b').Value := StrToFloat(Edit6.Text);
if Edit7.Text<>'empty' then
DataModule2.IBStoredProc1.ParamByName('a').Value := StrToFloat(Edit7.Text);
if Edit8.Text<>'empty' then
DataModule2.IBStoredProc1.ParamByName('p').Value := StrToFloat(Edit8.Text);
if Edit9.Text<>'empty' then
DataModule2.IBStoredProc1.ParamByName('g').Value := StrToFloat(Edit9.Text);
if Edit10.Text<>'empty' then
DataModule2.IBStoredProc1.ParamByName('s_1').Value := StrToFloat(Edit10.Text);

DataModule2.IBStoredProc1.ExecProc;
если ввожу в поля где флоат какоето значение то сохраняется без проблем а если оставляю нулл то ругается

is not a valid floating point value
postaveche вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Различие смысла в type "type" Alex Cones Общие вопросы Delphi 5 18.04.2010 23:57
Not implemented in type Dimanng Помощь студентам 0 20.02.2010 21:37
unsafe type Sergey2 Общие вопросы Delphi 0 08.08.2009 18:01
New Type Манжосов Денис :) Общие вопросы Delphi 5 30.07.2008 12:34