Интерфейс с memo-полями
Модераторы: m0p3e, edward_K, Модераторы
Re: Интерфейс с memo-полями
Den, по вариантам 1 и 2 отрабатывает минуту где-то. Без attrval за 3-4 сек. Короче, пробую делать времянку для attrval.
Не по теме: плюсую тебе, а счетчик не увеличивается. Сообщение валит: "You must spread your reputation point to other users before giving to the same user." Это так и надо??
Не по теме: плюсую тебе, а счетчик не увеличивается. Сообщение валит: "You must spread your reputation point to other users before giving to the same user." Это так и надо??
Re: Интерфейс с memo-полями
Добавил вторую временную таблицу по attrval, но кидает ошибку при компиляции "Нет такой функции, поля или метода : TATTRVAL.VLVAR"
Код: Выделить всё
// http://forum.galaktika.by
Interface SelectMemo, doaccept;
show at (6,6,65,20)
var
cnRec : comp;
table struct tbasedoc
(
nrec : comp,
ddoc : date,
nodoc : string
);
table struct tattrval
(
nrec : comp,
crec : comp,
wtable : word,
vlvar : lvar
);
create view
as select *
from tbasedoc, tattrval, ttndoc
where
((
comp(tBaseDoc.Nrec) == TTNDOC.CDOC
and word(1102) == ttndoc.wtable
and ttndoc.nrec == tattrval.CREC
and word(1150) == tattrval.wtable
));
parameters cnRec;
browse brSelPers;
show at (,,,10);
table tbasedoc;
fields
tBasedoc.ddoc 'Дата документа' : [15], protect;
tBasedoc.nodoc 'Номер документа': [15], protect;
end;
panel panText;
show at (,11,,);
table tattrval;
Text memoid=memo1 tattrval.vlvar 'Мемо-поле';
end;
handleevent
cmInit:
{
SQL select attrval.nrec, attrval.crec, attrval.wtable, attrval.vlvar
from attrval
where
attrval.cattrnam = comp('281474976711112')
into tattrval
SQL select basedoc.nrec, basedoc.ddoc, basedoc.nodoc
from basedoc
inner join ttndoc on (BaseDoc.Nrec = TTNDOC.CDOC) and ttndoc.wtable=1102
inner join tattrval on ttndoc.nrec = tattrval.CREC// and attrval.cattrnam = comp('281474976711112')
order by basedoc.ddoc
INTO tbasedoc
}
end;
End.
-
- Местный житель
- Сообщения: 1844
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
- Контактная информация:
Re: Интерфейс с memo-полями
см документацию на языке вип, раздел в корне "работа с БД(SQL)" и внутри этой папки "Прямой SQL" и там "временные пользовательские таблицы в прямом sql"
Re: Интерфейс с memo-полями
Документацию-то я читал, но на примерах все понятнее гораздо...
Re: Интерфейс с memo-полями
Во временную таблицу нельзя вставлять мемо-поля...
Сделал так и все равно минуту открывает и в итоге ничего не выводит:
Сделал так и все равно минуту открывает и в итоге ничего не выводит:
Код: Выделить всё
Interface SelectMemo 'Особые заявления отправителя', doaccept;
show at (6,6,65,20)
var
cnRec : comp;
stmt, astmt : longint;
table struct tbasedoc
(
nrec : comp,
ddoc : date,
nodoc : string
)
with index (n = nrec);
table struct tattrval
(
nrec : comp,
crec : comp
)
with index (c = crec);
create view
as select *
from tbasedoc, tattrval, attrval, ttndoc
where
((
comp(tBaseDoc.Nrec) == TTNDOC.CDOC
and word(1102) == ttndoc.wtable
and ttndoc.nrec == tattrval.CREC
and tattrval.nrec == attrval.nrec
));
parameters cnRec;
browse brSelPers;
show at (,,,10);
table tbasedoc;
fields
tBasedoc.ddoc 'Дата документа' : [15], protect;
tBasedoc.nodoc 'Номер документа': [15], protect;
end;
panel panText;
show at (,11,,);
table attrval;
Text memoid=memo1 attrval.vlvar 'Мемо-поле';
end;
handleevent
cmInit:
{
stmt := sqlAllocStmt;
//Создаем ВТ
sqlCreateTmpTable('Table tattrval (nrec : comp, crec : comp);', ctmNormal);
//Заполняем ВТ
sqlExecStmt(stmt,'select attrval.nrec, attrval.crec from attrval where attrval.cattrnam = comp(''281474976711112'')');
sqlFetchInto(stmt, tntattrval);
sqlFreeStmt(stmt);
stmt := sqlAllocStmt;
//Создаем ВТ
sqlCreateTmpTable('Table tbasedoc (nrec : comp, ddoc : date, nodoc : string);', ctmNormal);
//Заполняем ВТ
sqlExecStmt(stmt,'select basedoc.nrec, basedoc.ddoc, basedoc.nodoc from basedoc inner join ttndoc on (BaseDoc.Nrec = TTNDOC.CDOC) and ttndoc.wtable=1102 inner join tattrval on ttndoc.nrec = tattrval.CREC');
sqlFetchInto(stmt, tntbasedoc);
sqlFreeStmt(stmt);
}
end;
End.
Re: Интерфейс с memo-полями
По ходу никак не ускорить, attrval слишком большая таблица... Печаль...
-
- Местный житель
- Сообщения: 1844
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
- Контактная информация:
Re: Интерфейс с memo-полями
Ну если запускать вот это :
select attrval.nrec, attrval.crec from attrval where attrval.cattrnam = comp(''281474976711112'')
на самом инструментарии сервера и долго выполняется такой запрос - то да..галактика тут не причем точно..
select attrval.nrec, attrval.crec from attrval where attrval.cattrnam = comp(''281474976711112'')
на самом инструментарии сервера и долго выполняется такой запрос - то да..галактика тут не причем точно..
Re: Интерфейс с memo-полями
Den писал(а):Ну если запускать вот это :
select attrval.nrec, attrval.crec from attrval where attrval.cattrnam = comp(''281474976711112'')
на самом инструментарии сервера и долго выполняется такой запрос - то да..галактика тут не причем точно..
Саппортом выполняется запрос такой мгновенно, а если в девелопере оракловом к базе выполнять такой селект, то минуту где-то отрабатывает....
Как так???
Re: Интерфейс с memo-полями
Все-таки разобрался!!! Оказывается в запрос надо добавлять и таблицу attrnam, т.е. выгрузка во временную таблицу будет выглядеть так
select basedoc.nrec, basedoc.ddoc, basedoc.nodoc from basedoc, ttndoc, attrval, attrnam where BaseDoc.Nrec = TTNDOC.CDOC and ttndoc.wtable=1102 and ttndoc.nrec = attrval.CREC and attrval.cattrnam = attrnam.nrec and attrnam.nrec = comp('281474976711112')
Исходник всего интерфейса:
select basedoc.nrec, basedoc.ddoc, basedoc.nodoc from basedoc, ttndoc, attrval, attrnam where BaseDoc.Nrec = TTNDOC.CDOC and ttndoc.wtable=1102 and ttndoc.nrec = attrval.CREC and attrval.cattrnam = attrnam.nrec and attrnam.nrec = comp('281474976711112')
Исходник всего интерфейса:
Код: Выделить всё
Interface SelectMemo 'Особые заявления отправителя', doaccept;
show at (6,6,65,20)
var
cnRec : comp;
stmt, astmt : longint;
table struct tbasedoc
(
nrec : comp,
ddoc : date,
nodoc : string
)
with index (n = nrec);
create view
as select *
from tbasedoc, attrval, ttndoc
where
((
comp(tBaseDoc.Nrec) == TTNDOC.CDOC
and word(1102) == ttndoc.wtable
and word(1150) == attrval.wtable
and ttndoc.nrec == attrval.CREC
and word(1150) == attrval.wtable
and '281474976711112' == attrval.cattrnam
));
parameters cnRec;
browse brSelPers;
show at (,,,10);
table tbasedoc;
fields
tBasedoc.ddoc 'Дата документа' : [15], protect;
tBasedoc.nodoc 'Номер документа': [15], protect;
end;
panel panText;
show at (,11,,);
table attrval;
Text memoid=memo1 attrval.vlvar 'Мемо-поле';
end;
handleevent
cmInit:
{
stmt := sqlAllocStmt;
//Создаем ВТ
sqlCreateTmpTable('Table tbasedoc (nrec : comp, ddoc : date, nodoc : string);', ctmNormal);
//Заполняем ВТ
sqlExecStmt(stmt,'select basedoc.nrec, basedoc.ddoc, basedoc.nodoc from basedoc, ttndoc, attrval, attrnam where BaseDoc.Nrec = TTNDOC.CDOC and ttndoc.wtable=1102 and ttndoc.nrec = attrval.CREC and attrval.cattrnam = attrnam.nrec and attrnam.nrec = comp(''281474976711112'')');
//Читаем ВТ
sqlFetchInto(stmt, tntbasedoc);
sqlFreeStmt(stmt);
}
end;
End.
Re: Интерфейс с memo-полями
Den, если в курсе... Плюсую тебе, а счетчик не увеличивается.. Неудобно Хочу отблагодарить, а не получается...
Re: Интерфейс с memo-полями
Эпопея с мемо-полями продолжается.... Каким образом можно апдейтить мемо-поля? ExportMemoToFile, а потом ImportFileToMemo???
Re: Интерфейс с memo-полями
Пользуйтесь методами и функциями объекта File.
Открываете мемо-поле как файл с помощью OpenMemo и вперед (Read, ReadLn, Write, WriteLn). Посмотрите в хелпе - там есть примеры.
Открываете мемо-поле как файл с помощью OpenMemo и вперед (Read, ReadLn, Write, WriteLn). Посмотрите в хелпе - там есть примеры.
Re: Интерфейс с memo-полями
Это функции записывают данные мемо-поля в файл, а мне надо обратное сделать - из файла в мемо записать...Starry писал(а):Пользуйтесь методами и функциями объекта File.
Открываете мемо-поле как файл с помощью OpenMemo и вперед (Read, ReadLn, Write, WriteLn). Посмотрите в хелпе - там есть примеры.
-
- Местный житель
- Сообщения: 1844
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
- Контактная информация:
Re: Интерфейс с memo-полями
есть такая штука как поиск по форуму...или Вы ему не доверяете ? (как и хэлпу....)
Re: Интерфейс с memo-полями
Вот, поискал для вас. А в хелпе еще подробнее есть.
http://www.tyumbit.ru/gal_forum/viewtop ... t=openmemo
http://www.tyumbit.ru/gal_forum/viewtop ... t=openmemo