Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

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

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

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 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,517
По умолчанию

а так?
Код:
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,517
По умолчанию

Из всего текста только две строки написаны правильно
Код:
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 вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


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


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS
Здесь нужно купить рекламу за 7 тыс руб в месяц! )
пишите сюда - alarforum@yandex.ru
ИКС 840