Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Запуталась в типах


Автор: Hellen 25.2.2009, 23:45
Поправте код пжлста. подскажите где и почему у меня не соответствие типов.
Код

  var
  Kof :Array[1..25] of real;
  Cena:Array[1..25] of real;
  Price:Array[1..25] of real;
  Kvm:real;
  Kof   [1]:=ADOSet.FieldByName('Kof').AsVariant;
  Price [1]:=ADOSet.FieldByName('Price').AsVariant;

  Cena  [1]:=((price[1]*Kvm)*Kof);//Ругается на не соответствия типов


И ещё вопросик:
У меня имена переменных совпадают с именами полей таблицы,  это допустимо???

Добавлено через 59 секунд
После реала begin забыла и end   ам сори.......

Добавлено через 2 минуты и 8 секунд
Код

  var
  Kof :Array[1..25] of real;
  Cena:Array[1..25] of real;
  Price:Array[1..25] of real;
  Kvm:real;
begin
  Kof   [1]:=ADOSet.FieldByName('Kof').AsVariant;
  Price [1]:=ADOSet.FieldByName('Price').AsVariant;

  Cena  [1]:=((price[1]*Kvm)*Kof);//Ругается на не соответствия типов
end;


Добавлено через 5 минут и 6 секунд
И ещё кvm  допустим равны    1,6
Код

Kvm:=5/3;


Добавлено через 10 минут и 10 секунд
И ещё: типы полей в таблице  "Одинарное с плавающей точкой"  "Основной"

Автор: Akella 26.2.2009, 00:01
Cena  [1]:=((price[1]*Kvm)*Kof[1]);

умножать нужно НЕ на массив, а на элемент массива smile 

Автор: Kbl4AH 26.2.2009, 00:03
У тебя Kof - массив, так и обращайся как к элементу массива Kof[I], а не как к переменной Kof!!!

Автор: Akella 26.2.2009, 00:06
Цитата(Hellen @  25.2.2009,  23:45 Найти цитируемый пост)
У меня имена переменных совпадают с именами полей таблицы,  это допустимо???

и где это совпадение???



Цитата(Hellen @  25.2.2009,  23:45 Найти цитируемый пост)

  Kof :Array[1..25] of real;
  Cena:Array[1..25] of real;
  Price:Array[1..25] of real;

это имена переменных, так? ТАК!



Цитата(Hellen @  25.2.2009,  23:45 Найти цитируемый пост)
FieldByName('Kof').AsVariant;

Цитата(Hellen @  25.2.2009,  23:45 Найти цитируемый пост)
FieldByName('Price').AsVariant;

это обычный текст, так? ТАК!

Как может пересекаться обычный текст с именем переменной?



Можно взять другой пример:
Код

Var
k1,k2;
begin
 k1 := 'Kof';
 k2 := 'Price';

  Kof   [1]:=ADOSet.FieldByName(k1).AsVariant;
  Price [1]:=ADOSet.FieldByName(k2).AsVariant;


Добавлено через 42 секунды
Kbl4AH, я первый  smile  smile  smile

Добавлено через 1 минуту и 19 секунд
Цитата(Hellen @  25.2.2009,  23:45 Найти цитируемый пост)
Добавлено через 5 минут и 6 секунд
И ещё кvm  допустим равны    1,6
Выделить всёкод Pascal/Delphi
1:
    
Kvm:=5/3;

ИИИИИИИИ...... что-о-о??

Добавлено через 1 минуту и 49 секунд
Цитата(Hellen @  25.2.2009,  23:45 Найти цитируемый пост)
И ещё: типы полей в таблице  "Одинарное с плавающей точкой"  "Основной" 

ИИИИИ..... Что-о-о-о???

Автор: Данкинг 26.2.2009, 00:13
Цитата(Hellen @  25.2.2009,  23:45 Найти цитируемый пост)
У меня имена переменных совпадают с именами полей таблицы,  это допустимо???

На FoxPro - недопустимо, а тут-то какая разница. smile 


Автор: Hellen 26.2.2009, 00:21
То что проглядела массив. уже поняла, а вторая проблемма осталась:
Код

Kof   [1]:=ADOSet.FieldByName('Kof').AsVariant;
 При попытке открыть форму с гридом  выдает сообщение  что  поле  kof not faund

Добавлено через 1 минуту и 59 секунд
А сэтим кодом и полем все нормально работает:
price[1]:=ADOSet.FieldByName('Price').AsVariant;

Автор: Kbl4AH 26.2.2009, 00:33
Hellen, что же ты так непонятно вопрошаешь!? smile 
Наверное, чтобы все работало надо удалить строку 
Код

Kof   [1]:=ADOSet.FieldByName('Kof').AsVariant;

и оставить строку 
Код

price[1]:=ADOSet.FieldByName('Price').AsVariant;

 smile 
Цитата(Hellen @  26.2.2009,  00:21 Найти цитируемый пост)
При попытке открыть форму с гридом  выдает сообщение  что  поле  kof not faund

Могу предположить, что поля Kof нет в датасете smile 

Автор: Hellen 26.2.2009, 00:40
Цитата

Могу предположить, что поля Kof нет в датасете
Ты прав, как ни когда.
У меня это поле в другом датасете.......я это прошляпила.....
Спасибо всем.......

Автор: Akella 26.2.2009, 00:44
smile

Автор: Данкинг 26.2.2009, 00:47
Цитата(Kbl4AH @  26.2.2009,  00:33 Найти цитируемый пост)
Могу предположить, что поля Kof нет в датасете 

Я то же самое предположил, но облечь свои предположения в слова не осмелился. smile 

Автор: Hellen 26.2.2009, 01:02
Цитата

но облечь свои предположения в слова не осмелился
Правильно! Нужно осторожненько предположения высказывать........а вдруг.........

Добавлено через 1 минуту и 8 секунд
Не будем о грустном........продолжение следует........

Автор: Данкинг 26.2.2009, 01:14
Цитата(Hellen @  26.2.2009,  01:02 Найти цитируемый пост)
Нужно осторожненько предположения высказывать........а вдруг.........

В моём случае "вдруг" не произошло. smile  smile  smile 

Цитата(Hellen @  26.2.2009,  01:02 Найти цитируемый пост)
продолжение следует........ 

 smile  smile Жду продолжения. Флудить заканчиваем. smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)