Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.08;
Скачать: [xml.tar.bz2];




Вниз

Ошибка Invalid Variant Operation ! 


sudiv   (2002-03-26 08:54) [0]

Мастера,
при добавлении записи в таблицу методом
Table.InsertRecord([ComboBox2.Text,
ComboBox1.Text,
StrToFloat(Edit2.Text),
ComboBox.Text,
StrToFloat(Edit3.Text)]);
возникает ошибка
Invalid Variant Operation.
Все контролы корректно заполнены.
Может знает кто в чем дело.
Сама среда не показывает ошибку на этом месте, при отладке вылетает именно на этом методе.



Johnmen   (2002-03-26 10:33) [1]

Ошибку вызывает StrToFloat(Edit2.Text) или StrToFloat(Edit3.Text)



sudiv   (2002-03-26 13:36) [2]

Да, большое спасибо за ответ, но он неверен.
Как я писал, все контролы (и эдиты) заполнены корректно => д.б. корректны и их преобразования.

Проблема оказывается несколько в другом:
В таблице есть вычисляемые поля, они соответственно, вычисляются
в OnCalcFields, т.е.
procedure TForm1.TableCalcFields(DataSet: TDataSet);
begin

end;

Прога была написана в D4, нормально компилилась и работала в D5 c таким OnCalc"ом
procedure TForm1.TableCalcFields(DataSet: TDataSet);
begin
DataSet["SUMM"] := DataSet["COUNT"] * DataSet["PRICE"]
end;

а вот в D6 эта конструкция не работает, выдает сабж,
переделал на
procedure TForm1.TableCalcFields(DataSet: TDataSet);
begin
TableSUMM.Value := TableСOUNT.Value * TablePRICE.Value;
end;
TableSUMM : TFloatField; { calculated }
TableCOUNT, TablePRICE : TFloatField;
Стало работать.
Странно все это, но факт.




Johnmen   (2002-03-26 14:00) [3]

А еще лучше
...
TableSUMM.AsFloat:=TableСOUNT.AsFloat*TablePRICE.AsFloat;
...
И это не странно, а вполне объяснимо :
DataSet["COUNT"], DataSet["PRICE"] - это Variant, который не мог преобразоваться к веществ.типу,
или DataSet["SUMM"]:=... вещ.тип не преобр. к Variant...




Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.08;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.017 c
3-22576           Zloy                  2002-03-18 07:03  2002.04.08  
Приветствую!!! Подскажите плиз, как сделать так чтобы таблица после каждого заполнения или редактирования какого-то поля 100% сохраналась


1-22707           PEC                   2002-03-26 12:24  2002.04.08  
Привет народ


3-22527           diww                  2002-03-14 12:35  2002.04.08  
Выполнение запроса


1-22684           lipskiy               2002-03-24 23:23  2002.04.08  
TThread: Что значит ошибка


1-22616           Goblinus              2002-03-26 16:40  2002.04.08  
программное эмулирование управляющих клавиш