Подскажите как объявить временную таблицу.
Модераторы: m0p3e, edward_K, Модераторы
Подскажите как объявить временную таблицу.
Временная таблица не вмещает больше одной записи. Привидите работающий пример.
-
- Местный житель
- Сообщения: 278
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Москва
- Контактная информация:
Re: Подскажите как объявить временную таблицу.
Table struct SMyTable
(KSNrec : comp,
D_Nakl : date,
N_Nakl : string[20],
T_Nakl: word,
N_PDRFROM: string,
CPDR_FR : comp,
G_FR : word,
N_PDRTO: string,
CPDR_TO : comp,
G_TO : word,
T_KO : double,
N_U: string[1])
with index (M1 = D_Nakl + T_Nakl);
interface R_G_G (,,sci1ESC);
show at (,,,41);
var
PRIZ_ZP : word;
F_NAME : string;
hndF : longint;
FIL_c : boolean;
M_DATE : string;
BR_NO_BR : word;
TD : string;
N_PODR : comp;
begdate, enddate : date;
PDRTO : string;
. . . . . . ..
И так далее
(KSNrec : comp,
D_Nakl : date,
N_Nakl : string[20],
T_Nakl: word,
N_PDRFROM: string,
CPDR_FR : comp,
G_FR : word,
N_PDRTO: string,
CPDR_TO : comp,
G_TO : word,
T_KO : double,
N_U: string[1])
with index (M1 = D_Nakl + T_Nakl);
interface R_G_G (,,sci1ESC);
show at (,,,41);
var
PRIZ_ZP : word;
F_NAME : string;
hndF : longint;
FIL_c : boolean;
M_DATE : string;
BR_NO_BR : word;
TD : string;
N_PODR : comp;
begdate, enddate : date;
PDRTO : string;
. . . . . . ..
И так далее
Re: Подскажите как объявить временную таблицу.
объявляю также но почему-то в таблицу не помещается больше одной записи, как ее заполнять?
-
- Посетитель
- Сообщения: 44
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Москва ЗАО "Март-Консалтинг"
Re: Подскажите как объявить временную таблицу.
Сначала объявляем структуру таблицы:
Table Struct tsootv
( cosh : string(3),
cosub : string(3),
filsh : string(3),
filsub : string(3),
filsub2 : string(3)
)
with index
(tsootv = filsh+filsub+filsub2
);
А потом в интерфейсе заполняем, например из .dbf - файла:
do
{
pcosh:=DBFGetFieldValue(hMyDbf,'cosh');
pcosub:=DBFGetFieldValue(hMyDbf,'cosub');
pfilsh:=DBFGetFieldValue(hMyDbf,'filsh');
pfilsub:=DBFGetFieldValue(hMyDbf,'filsub');
pfilsub2:=DBFGetFieldValue(hMyDbf,'filsub2');
Insert tsootv set cosh:=pcosh,
cosub:=pcosub,
filsh:=pfilsh,
filsub:=pfilsub;
filsub2:=pfilsub2;
Update current tsootv;
}while DBFGetNext(hMyDbf)=0;
Обязательно при добавлении записи в таблицу должны быть и insert и update. У меня такой вариант работает.
Table Struct tsootv
( cosh : string(3),
cosub : string(3),
filsh : string(3),
filsub : string(3),
filsub2 : string(3)
)
with index
(tsootv = filsh+filsub+filsub2
);
А потом в интерфейсе заполняем, например из .dbf - файла:
do
{
pcosh:=DBFGetFieldValue(hMyDbf,'cosh');
pcosub:=DBFGetFieldValue(hMyDbf,'cosub');
pfilsh:=DBFGetFieldValue(hMyDbf,'filsh');
pfilsub:=DBFGetFieldValue(hMyDbf,'filsub');
pfilsub2:=DBFGetFieldValue(hMyDbf,'filsub2');
Insert tsootv set cosh:=pcosh,
cosub:=pcosub,
filsh:=pfilsh,
filsub:=pfilsub;
filsub2:=pfilsub2;
Update current tsootv;
}while DBFGetNext(hMyDbf)=0;
Обязательно при добавлении записи в таблицу должны быть и insert и update. У меня такой вариант работает.
Re: Подскажите как объявить временную таблицу.
Мне как то тоже пришлось заполнять вр. таблицу
я использовал вот такую конструкцию.
modifier insert My_Tabl set sch= list[i], s_vx = Sal_d-Sal_k, ndate =d2;
и Все работает ver 5.84 и 5.85
я использовал вот такую конструкцию.
modifier insert My_Tabl set sch= list[i], s_vx = Sal_d-Sal_k, ndate =d2;
и Все работает ver 5.84 и 5.85
-
- Абориген
- Сообщения: 943
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: External Developer
- Контактная информация:
Re: Подскажите как объявить временную таблицу.
Вообще заполнять лучче так
Do
{
Insert Current My_Tbl Set My_Tbl.fField1:=value1,My_Tbl.fField2:=value2,...My_Tbl.fFieldN:=value1;
}while DBFGetNext(hMyDbf)=0;
Одной строкой вставка всех полей без лишних операторов Update, Кстати - конструкция - стандартная.
Do
{
Insert Current My_Tbl Set My_Tbl.fField1:=value1,My_Tbl.fField2:=value2,...My_Tbl.fFieldN:=value1;
}while DBFGetNext(hMyDbf)=0;
Одной строкой вставка всех полей без лишних операторов Update, Кстати - конструкция - стандартная.
Re: Подскажите как объявить временную таблицу.
И та и эта конструкция применяется. Можно даже поискать какая где. Я применяю конструкцию insert current когда однозначно что-то присваиваю, а insert - update current когда идет присвоение по условию.
Re: Подскажите как объявить временную таблицу.
еще несколько вопросов:
можно ли объявить временную таблицу в форме?
или как вывести итог перед выводом всех данных (исходников интерфейса нет, редактировать можно только форму)?
и можно ли из формы писать в текстовый файл?
можно ли объявить временную таблицу в форме?
или как вывести итог перед выводом всех данных (исходников интерфейса нет, редактировать можно только форму)?
и можно ли из формы писать в текстовый файл?
\\m/ ©[°±°]© \\m/
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: Подскажите как объявить временную таблицу.
1. для этого ты объявляешь ее в отдельном файле
в проекте
#include ddd.inc
компилить соотв. только випом
2.нужно накапливать данные во временную таблу(если с такой не получиться можешь юзать TEMPDESCR например, или другую из схемы user)
потом после вывода итогов выводишь данные из таблы.
3. самое примитивное logstrtofile(file,mes)
в проекте
#include ddd.inc
компилить соотв. только випом
2.нужно накапливать данные во временную таблу(если с такой не получиться можешь юзать TEMPDESCR например, или другую из схемы user)
потом после вывода итогов выводишь данные из таблы.
3. самое примитивное logstrtofile(file,mes)