Страница 1 из 1
SQL запрос в форме
Добавлено: 14 май 2005, 13:44
oiko
Есть форма текст ниже
.linkform ’Raspor’ prototype is ’PRBDOC’
.NameInList ’Myform’
.group 'Продажа'
.var
plkontr:string
.endvar
.create view vsveddk
as select *
from
basedoc(readonly), dogovor(readonly), katorg(readonly)
where
((comp(BaseDocNrec)==Basedoc.nrec and
basedoc.corg==katorg.nrec));
.fields
Plkontr
.endfields
.{
.begin
vsveddk.GetFirst Basedoc;
vsveddk.GetFirst katorg;
Plkontr:= vsveddk.KATORG.name;
end.
KATORG.name ^
.{ CheckEnter IsExClass
.}
.{ CheckEnter IsGroup
.}
.{
.}
.if Delimiter
.end
.}
.endform
При отработке Галактика либо вылетает либо выдает мусор - отчаялся понять почему. Версия 7.12
Добавлено: 14 май 2005, 15:25
DarkAngel27
Договора выгружаешь, а связку не делаешь, вот мусор и гонится...
* Я пометил те места, которые изменял
Код: Выделить всё
.linkform ’Raspor’ prototype is ’PRBDOC’
.NameInList ’Myform’
.group 'Продажа'
.var
plkontr:string
.endvar
.create view vsveddk
as select *
from
basedoc(readonly), dogovor(readonly), katorg(readonly)
where
((
BaseDocNrec == Basedoc.nrec and
basedoc.corg==katorg.nrec
* and basedoc.cdogovor == dogovor.nrec
));
.fields
Plkontr
.endfields
.{
.begin
* vsveddk.GetFirst;
Plkontr:= vsveddk.KATORG.name;
end.
KATORG.name ^
.{ CheckEnter IsExClass
.}
.{ CheckEnter IsGroup
.}
.{
.}
.if Delimiter
.end
.}
.endform
Так поидеи должно заработать...
Добавлено: 14 май 2005, 15:44
oiko
Это была описка с договором не имеющая значения
так тоже не идет
.linkform ’Raspor’ prototype is ’PRBDOC’
.NameInList ’Myform’
.group 'Продажа'
.var
plkontr:string
.endvar
.create view vsveddk
as select *
from
basedoc(readonly), katorg(readonly)
where
((
BaseDocNrec == Basedoc.nrec and
basedoc.corg==katorg.nrec
));
.fields
Plkontr
.endfields
.{
.begin
vsveddk.GetFirst;
Plkontr:= vsveddk.KATORG.name;
end.
KATORG.name ^
.{ CheckEnter IsExClass
.}
.{ CheckEnter IsGroup
.}
.{
.}
.if Delimiter
.end
.}
.endform
Самое интересное в первазив версии отчет выдает все правильно
под ораклом вылетает
eсли меняю поле на katorg.indexk то под ораклом по-прежнему вылетает а первазив дает мусор типа 633____________аYР__оt_I_7____¦Рx__фx______LЪР__оt_
Добавлено: 15 май 2005, 21:41
DarkAngel27
Попробуй сделать следующее: Убрать (ReadOnly), изменить тип выводимого поля и избавиться от переменной:
Код: Выделить всё
......
.fields
vsveddk.KATORG.name
.endfields
.{
.begin
vsveddk.GetFirst;
end.
KATORG_name @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
.....
Так же можно попробовать переименовать таблицу, может имя используется...
А зачем нужно выводить данное поле
Оно уже есть в прототипе:
pol - платильщик,
grpol - получатель. Или наоборот.
Добавлено: 16 май 2005, 08:54
oiko
То DarkAngel27
То что ты предлагаешь не проходит тоже.
Задача была составить реквизиты контрагента по некоторому шаблону
Потом меня просто заинтересовало почему так получается, например таблица договоров цепляется нормально а каторг нет.
Глюк виден и на тестовой "Галактической базе"
И еще когда прошу выдать katorg.indexk как я уже писал выше и идет мусор 633____________аYР__оt_I_7____¦Рx__фx______LЪР__оt_
так вот 633 - последние три цифры инн контрагента
Добавлено: 16 май 2005, 15:15
DarkAngel27
А если проверить целостность таблицы?
Добавлено: 16 май 2005, 15:59
oiko
Проверил естественно
но это подразумевало бы что и тестовые
"Галактические базы" - тоже больные
Добавлено: 16 май 2005, 16:22
Max_Fin
Попробуйте заменить это
oiko писал(а):
.begin
vsveddk.GetFirst;
Plkontr:= vsveddk.KATORG.name;
end.
на
Код: Выделить всё
.begin
Plkontr:= '';
if vsveddk.GetFirst BaseDoc = tsOk
{
if vsveddk.GetFirst KatOrg = tsOk
{
Plkontr:= vsveddk.KATORG.name;
}
else Plkontr:= '?!' + vsveddk.BaseDoc.cOrg;
}
end.
может станет понятней в чем ошибка
Добавлено: 17 май 2005, 10:49
oiko
Тоже самое
katorg.name выводится а вместо katorg.indexk мусор
запрос в суппорте отрабатывает правильно
Добавлено: 17 май 2005, 12:07
edward_K
попробуйте в select перечислить список необходимых полей
* не есть хорошо.
Добавлено: 18 май 2005, 09:17
oiko
to edward_K
Теперь мусора нет
вместо значения katorg.indexk теперь четко выводится katorg.unn
все это загадочно
Непонятно становится как рботают sql-запросы в форме
явно не так как в випе или суппорте.
Добавлено: 18 май 2005, 11:23
edward_K
1. Какая платформа? Oracle , Pervasive + версия
Галактика + патчи.
2. не баловились ли вы с добавлением полей и индексов в katsopr?
очень на то похоже.
3. Четко проверте на каком словаре компилите
я сталкивался с тем , что компили на словаре 585, а запускали на 711 - так вот так будет работать в редких случаях. Лучше компилить всегда на той базе на которой это будет использоваться.
4. попробуйте вывести наименование, unn,indexk и следующее поле за indexk текстовое и заполненое.
5. киньте мне в мыло последний вариант ваше формы, проверю на досуге.
6. попробуйте написать ARd в которой вытащить указанные поля katorg.
Добавлено: 18 май 2005, 12:41
oiko
Большой thanks господину edward_K!
Глюк шел по пункту 3. Текущая версия 712 а в настройке компилятора была указана база 711. А при докомпиляции c 711 на 712 в katsopr действительно добавляется индекс (кстати добавляется криво и мне пришлось лечить таблу после конвертации).
Тема закрыта и пусть послужит остальным уроком.
АРД не использую - лучше напишу на випе интерфейс под отчет - так эргономичнее.