powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Данные не сохраняются
35 сообщений из 35, показаны все 2 страниц
Данные не сохраняются
    #38489668
nata18
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ввожу в терминале метод
do ##class(VDS.Disciplina).AddDisciplina()
заполняю без ошибок
но когда смотрю на таблицу в SQL-менеджере, то она не заполнена, в отличии от таблицы Student, которую я создавала по аналогичному методу
do ##class(VDS.Student).AddStudent()

что это может быть?
...
Рейтинг: 0 / 0
Данные не сохраняются
    #38489671
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nata18, а пусть Cache вам об этом расскажет. Подправьте свой код вот так:
Код: vbnet
1.
2.
3.
4.
5.
6.
ClassMethod AddDisciplina(...
....
set yy=di.%Save() 
w !, "Disciplina save: ", yy
do di.%Close()
....


а результат выполнения сюда пришлите
...
Рейтинг: 0 / 0
Данные не сохраняются
    #38489676
nata18
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
doublefint,
...
Рейтинг: 0 / 0
Данные не сохраняются
    #38489682
nata18
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
doublefint,

и что?
...
Рейтинг: 0 / 0
Данные не сохраняются
    #38489755
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Модификация...
Код: vbnet
1.
2.
set yy=di.%Save() 
w !, "Disciplina save: ",$SYSTEM.Status.GetErrorText( yy)
...
Рейтинг: 0 / 0
Данные не сохраняются
    #38489806
Фотография П.С.М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nata18,

Так вроде по-русски написано: vvedite id disciplini (введите id дисциплины) :)
...
Рейтинг: 0 / 0
Данные не сохраняются
    #38489814
Фотография П.С.М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
поищите где в коде у Вас эта строчка и посмотрите что там не так :)
...
Рейтинг: 0 / 0
Данные не сохраняются
    #38489864
nata18
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsa,

всеравно ничего не сохраняет... еще й ошибка
...
Рейтинг: 0 / 0
Данные не сохраняются
    #38489869
nata18
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
П.С.М.,

ну все же нормально с IdDisciplini:


ClassMethod AddDisciplina() As Disciplina
{
write !,"Vvid novih ob'yektiv"
for {
read !, "Vvedit id disciplini",!, IdDisciplini
Quit:IdDisciplini=""
read !, "Vvedit nazvu",!, NazvaDisc
read !, "Vvedit imya viklada4a",!, Vikladach
read !, "Vvedit nazvu kafedri viklada4a",!, Kafedra
read !, "Vvedit kilkist godin",!, KilcGodin
set di=##class(VDS.Disciplina).%New()
set di.IdDisciplini=IdDisciplini
set di.NazvaDisc=NazvaDisc
set di.Vikladach.Personal.Imya=Vikladach
set di.Vikladach.Kafedra=Kafedra
set di.KilcGodin=KilcGodin
set yy=di.%Save()
do $system.OBJ.DisplayError(di.%Save())
do di.%Close()
}
}
...
Рейтинг: 0 / 0
Данные не сохраняются
    #38489870
nata18
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
nata18,

do $system.OBJ.DisplayError(di.%Save()) - я уже стерла
...
Рейтинг: 0 / 0
Данные не сохраняются
    #38489878
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nata18krvsa,

всеравно ничего не сохраняет... еще й ошибкаа ошибка то какая ? вам же написали как посмотреть ошибку.
...
Рейтинг: 0 / 0
Данные не сохраняются
    #38489887
nata18
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DAiMor,

5659
...
Рейтинг: 0 / 0
Данные не сохраняются
    #38489894
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nata18DAiMor,

5659читаем документацию , и видим
5659 Property '%1' required
а это значит что вы не заполнили поле которое в описании класса пометили как Required
...
Рейтинг: 0 / 0
Данные не сохраняются
    #38489896
nata18
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DAiMor,

Relationship IdDisciplini As VDS.VibirStud [ Cardinality = one, Inverse = DisciplinaV, Required ];

ну у меня только сдесь есть слово Required
и что делать?
...
Рейтинг: 0 / 0
Данные не сохраняются
    #38489900
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
set di.IdDisciplini=IdDisciplini
для полей типа Relationship, не подойдет
тут нужен сам объект, попробуйте так
Код: plaintext
set di.IdDisciplini=##class(VDS.VibirStud).%OpenId(IdDisciplini)
и еще желательно как можно меньше использовать Relationship в своих классах, старайтесь использовать другие способы.
...
Рейтинг: 0 / 0
Данные не сохраняются
    #38489906
nata18
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DAiMor,

та же ошибка(...
...
Рейтинг: 0 / 0
Данные не сохраняются
    #38489943
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nata18DAiMor,

та же ошибка(...Какая то странная у вас там схема данных, да и в украинском я не силен половину не понятно, для чего у вас там какие классы и связи.
...
Рейтинг: 0 / 0
Данные не сохраняются
    #38489950
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nata18всеравно ничего не сохраняет...
На сохранение это и не повлияет... Это просто вывод ошибки текстом.
...
Рейтинг: 0 / 0
Данные не сохраняются
    #38490332
Фотография П.С.М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMorи еще желательно как можно меньше использовать Relationship в своих классах, старайтесь использовать другие способы.
Дим, прокомментируй подробнее в целях саморазвития :) Чем провинился Relationship? В чем выражается негативность использования? Мож ссылка есть, где почитать подробнее можно? И что предлагается/рекомендуется на замену?
...
Рейтинг: 0 / 0
Данные не сохраняются
    #38490379
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
П.С.М.DAiMorи еще желательно как можно меньше использовать Relationship в своих классах, старайтесь использовать другие способы.
Дим, прокомментируй подробнее в целях саморазвития :) Чем провинился Relationship? В чем выражается негативность использования? Мож ссылка есть, где почитать подробнее можно? И что предлагается/рекомендуется на замену?Уже как то поднималась эта тема здесь на форуме, смысл в том что были проблемы с оптимизатором SQL запросов по таким таблицам, что часто при выполнении запроса происходят неоптимальные переборы. А на замену желательно использовать только прямые ссылки на связанные объекты. ну и нужно всегда четко понимать какая связь нужна. и точно ли нужна связь один-ко-многим. если через SQL можно получить значения и при отсутствии Relationship
...
Рейтинг: 0 / 0
Данные не сохраняются
    #38490995
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не знаю, не уверен, что в SQL это что-то значит relationship (кроме проверки целостности).
В объектах да, там что-то типа спец объекта создается, есть подозрение, что он может замедлять работу, но это недостоверно.
А планы и при простых ссылках часто рисует кривые.
...
Рейтинг: 0 / 0
Данные не сохраняются
    #38492701
Шваров Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nata18,

а какой вуз в Украине?
...
Рейтинг: 0 / 0
Данные не сохраняются
    #38493152
D_De1mos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блок А.Н.Не знаю, не уверен, что в SQL это что-то значит relationship (кроме проверки целостности).
В объектах да, там что-то типа спец объекта создается, есть подозрение, что он может замедлять работу, но это недостоверно.
А планы и при простых ссылках часто рисует кривые.

Кроме замедления работы (тоже не уверен, что это так), этот промежуточный объект много проблем доставляет при удалении связи.
Например есть класс А, который связан с классом Б так, что объект А может иметь много объектов Б.
Теперь чтобы удалить объект Б недостаточно просто сделать %DeleteId, необходимо так же удалить его из коллекции в объекте А, ибо если после этого сохраненить А, то объект восстановится. Особенно актуально, когда клиент, при удалении, понятния не имеет о том, что работает с RelationsShip.
Есть и другие проблемы с этим, например нельзя никогда забывать про %UnswizzleAt.

На нашем проекте строжайше запрещено добавлять RelationsShip свойства в новых классах/связях
...
Рейтинг: 0 / 0
Данные не сохраняются
    #38493309
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
эмм... Я не то, чтобы много работал с relationship в объектах, но уверен, что вы ошибаетесь.
Кроме того, связь parent-child вы вообще удалить не сможете.
...
Рейтинг: 0 / 0
Данные не сохраняются
    #38493312
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оставьте в покое RelationsShip...
Он ни чем не провинился. Он выполняет свое предназначение и не более того...
...
Рейтинг: 0 / 0
Данные не сохраняются
    #38493325
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блок А.Н.,

хм, уже вижу, что вы правы, но еще не могу понять, почему так работет.
...
Рейтинг: 0 / 0
Данные не сохраняются
    #38493326
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
(это я D_De1mos писал)
...
Рейтинг: 0 / 0
Данные не сохраняются
    #38493352
D_De1mos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блок А.Н.хм, уже вижу, что вы правы, но еще не могу понять, почему так работет.
Так работает потому что промежуточный объект хранит связь между объектами. А т.к. Б мы удалили, то %Id у него пустой. И при сохранении А проверяются все связанные объекты на их наличие в базе и модификацию. Таким образом, увидев через промежуточный объект, что есть несохраненный объект Б, мы пытаемся его успешно сохранить.
В общем Relationship выполняет свою задачу. Но при этом требует слишком пристального к себе внимания.
...
Рейтинг: 0 / 0
Данные не сохраняются
    #38493395
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
D_De1mosВ общем Relationship выполняет свою задачу. Но при этом требует слишком пристального к себе внимания.
Он для этого и предназначен.
Если кому не нравятся его "правила" это уже его личное дело... Но сам механизм Relationship винить в своих неумениях или не правильном его использовании таки не стоит.

А то так и до мистики не далеко...
...
Рейтинг: 0 / 0
Данные не сохраняются
    #38493468
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Предназначен для чего? Восстанавливать удаленные объекты?
...
Рейтинг: 0 / 0
Данные не сохраняются
    #38493619
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блок А.Н.Предназначен для чего?
Например для контроля удаления... Для синтаксиса -> или точку, при объектном доступе. Для явного показа связей...
А что еще от него ждете? Волшебства?

А все эти байки про оптимизатор... Так было время и BETWEEN c IN-ном не работали в Кащее. А потом это исправили... Оптимизатор сегодня такой, а завтра другой... А структыры данных живут гораздо дольше.
...
Рейтинг: 0 / 0
Данные не сохраняются
    #38493622
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
D_De1mosНапример есть класс А, который связан с классом Б так, что объект А может иметь много объектов Б.
Теперь чтобы удалить объект Б недостаточно просто сделать %DeleteId, необходимо так же удалить его из коллекции в объекте А, ибо если после этого сохраненить А, то объект восстановится.
Вот это на примере классов покажи...
Что это за связь такая, с коллекциями всякими...
...
Рейтинг: 0 / 0
Данные не сохраняются
    #38493684
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaБлок А.Н.Предназначен для чего?
Например для контроля удаления... Для синтаксиса -> или точку, при объектном доступе. Для явного показа связей...
А что еще от него ждете? Волшебства?

А все эти байки про оптимизатор... Так было время и BETWEEN c IN-ном не работали в Кащее. А потом это исправили... Оптимизатор сегодня такой, а завтра другой... А структыры данных живут гораздо дольше.у ТС версия Cache 5.0 так что там наверно с оптимизацией пока еще не все гладко.
...
Рейтинг: 0 / 0
Данные не сохраняются
    #38494074
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMorсмысл в том что были проблемы с оптимизатором SQL запросов по таким таблицам, что часто при выполнении запроса происходят неоптимальные переборы.Можно примеры оптимальных/неоптимальных запросов для свойств с/без Relationship? Если это касается лишь версии 5.0, может имеет смысл это как-то выделить? D_De1mosНапример есть класс А, который связан с классом Б так, что объект А может иметь много объектов Б. Теперь чтобы удалить объект Б недостаточно просто сделать %DeleteId, необходимо так же удалить его из коллекции в объекте А, ибо если после этого сохраненить А, то объект восстановится. Особенно актуально, когда клиент, при удалении, понятния не имеет о том, что работает с RelationsShip. Есть и другие проблемы с этим, например нельзя никогда забывать про %UnswizzleAt.Блок А.Н.Блок А.Н., хм, уже вижу, что вы правы, но еще не могу понять, почему так работет.Уже приводилось: 14524475 .
ПримерClass demo.b Extends %Persistent { Index aIndex On a; Property s As %String; Relationship a As demo.a [ Cardinality = one, Inverse = aList ]; } Class demo.a Extends %Persistent { Property s As %String; Relationship aList As demo.b [ Cardinality = many, Inverse = a ]; ClassMethod Fill() {   d ..%KillExtent()   d ##class(demo.b).%KillExtent()      s a=..%New()   s a.s="a"      s b2=##class(demo.b).%New()   s b2.s="b2"   s b2.a=a   s b1=##class(demo.b).%New()   s b1.s="b1"   s b1.a=a  
  •  d a.%Save()
  • } ClassMethod Test() {   d ..Fill()      s a=..%OpenId(1)   ;w a.aList.GetAt(2).s,!   ;d a.aList.%UnSwizzleAt(2)     
  •  d ##class(demo.b).%DeleteId(2)
  •  
  •  d a.%Save()
  • } }
    Код: plaintext
    USER>d ##class(demo.a).Fill()
    demo.a:IDs1ademo.b:IDas11b121b2
    • Тест №1: нет подгрузки в память s a=..%OpenId(1)
    •  d ##class(demo.b).%DeleteId(2)
    •  d a.%Save()
    • demo.a:IDs1ademo.b:IDas11b1 Тест №2: есть подгрузка в память s a=..%OpenId(1)   w a.aList.GetAt(2).s,!
    •  d ##class(demo.b).%DeleteId(2)
    •  d a.%Save()
    • demo.a:IDs1ademo.b:IDas11b1 3 1 b2 Тест №3: есть подгрузка в память и выгрузка из памяти  s a=..%OpenId(1)   w a.aList.GetAt(2).s,!   d a.aList.%UnSwizzleAt(2)
    •  d ##class(demo.b).%DeleteId(2)
    •  d a.%Save()
    • demo.a:IDs1ademo.b:IDas11b1
    Блок А.Н.Предназначен для чего? Восстанавливать удаленные объекты?Надеюсь, пример выше пояснит "чудесное" восстановление "удалённых" объектов и как этого избежать. PS: действительно, так недалеко и до суеверий и предубеждений . Пока же придерживаюсь точки зрения krvsa.
    ...
    Рейтинг: 0 / 0
    Данные не сохраняются
        #38494144
    Фотография krvsa
    Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
    Участник
    servitУже приводилось: 14524475.
    Я никогда не использовал такой способ/подход для работы со связанными екземплярами...
    Наверное из-за стойкой неприязни к простым переборам.
    ...
    Рейтинг: 0 / 0
    35 сообщений из 35, показаны все 2 страниц
    Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Данные не сохраняются
    Целевая тема:
    Создать новую тему:
    Автор:
    Закрыть
    Цитировать
    Найденые пользователи ...
    Разблокировать пользователей ...
    Читали форум (0):
    Пользователи онлайн (0):
    x
    x
    Закрыть


    Просмотр
    0 / 0
    Close
    Debug Console [Select Text]