Модификация полей

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
Vlad
Постоянный обитатель
Сообщения: 101
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Красноярск

Модификация полей

Сообщение Vlad »

Подскажите, как реализовать Update (или Insert)

Код: Выделить всё

var i:integer;
...
Update current TmpTable
  set Field[i]:=5;
ругается на индекс (i), грит, что ожидается целое число.
Den
Местный житель
Сообщения: 1842
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Сообщение Den »

Так не получится (
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5187
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

можно
#define iiii 3
Field[#iiii]:=
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5187
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

речь видимо о сапорт - sql?
Vlad
Постоянный обитатель
Сообщения: 101
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Красноярск

Сообщение Vlad »

Нет, об интерфейсах. Спасибо всем. Буду прописывать поля
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5187
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

в фейсах без пролем
попробуйте так
Update current TmpTable
set TmpTable.Field:=5;
Vlad
Постоянный обитатель
Сообщения: 101
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Красноярск

Сообщение Vlad »

Так и пробовал, ошибка выше
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5187
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

значит у вас поля не описаны как массив.
приведите описание вашей таблы.
Vlad
Постоянный обитатель
Сообщения: 101
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Красноярск

Сообщение Vlad »

Код: Выделить всё

table struct tmpTable
(
        Nrec:comp,
        tperson:comp,
        tLschet:comp,
        NameSp : string[80],
        Ifns : string[20],
        fio:string[60],
        Sum:array [1..10] of double
)
WITH INDEX
(
        tmpTable01=nrec,
        tmpTable02=tlschet
)
;
и соответсвенно

Код: Выделить всё

    update current tmpTable set 
      tmpTable.sum[i]:=tmpTable.sum[1]+sum;
Vlad
Постоянный обитатель
Сообщения: 101
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Красноярск

Сообщение Vlad »

в том то и дело, что если делать
for(i=1;i<=6;i:=i+1)
tmpTable.sum:=5;
то все работает.
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5187
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

вот теперь понятно.
update current set не переваривает данные не из своей вьюшки.
а tmpTable.sum[1]:= прокатывает?
мне в лом пробовать, а вы попробуйте i описать после create view
а еще лучше в
as select word(0) (fieldname=iii)
можно еще попробовать i в tmptable и хранить.
- мож прокатит, но маловероятно.
Alpiton
Посетитель
Сообщения: 40
Зарегистрирован: 18 апр 2006, 09:19

Сообщение Alpiton »

Надо сначала писать присвоение

set Field:=5;

а потом

Update current TmpTable;
Ответить