powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Помогите плз
19 сообщений из 19, страница 1 из 1
Помогите плз
    #34377999
Karrok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как через терминал "заполнить" базу? Я понимаю что нужен скрипт... разбирался на стандартном примере CinemaData.MAC там все пашет... пробовал аналогично сделать для своего...
<CLASS DOES NOT EXIST>
:(
В чем проблема? Мои классы надо где-то "зарегестрировать"? Отпишете плз поподробней...
...
Рейтинг: 0 / 0
Помогите плз
    #34378052
VadimF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Советую посмотреть документ Object QS .
Там описано как работать с классами Cache'.

Вадим
...
Рейтинг: 0 / 0
Помогите плз
    #34378209
Peter Zarubin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для генерации тестовых данных можно использовать %Populate
Объявляешь свой класс
Class MyApp.MyClass Extends (%Persistent,%Populate)

А потом
d ##class(MyApp.MyClass).Populate(100) // Создает 100 объектов твоего класса
...
Рейтинг: 0 / 0
Помогите плз
    #34378861
Karrok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VadimFСоветую посмотреть документ Object QS .
Там описано как работать с классами Cache'.

Нечто подобное я уже пробовал... не работает. НО, у меня Каше 4.0, а не 5.0(( НЕмогу поставить другой из-за того, что в универе стоит именно 4, а надо здать именно по нем зачет... В 4, в студии отсустствует создание проджекта, просто New и все... пробовал таким образом, в Object Architect компилировать класс и делать как указано в в книге: USER>set h=##class(User.Human).%New(), результат - Класс не существует...
Peter ZarubinДля генерации тестовых данных можно использовать %Populate
Объявляешь свой класс
Class MyApp.MyClass Extends (%Persistent,%Populate)

А потом
d ##class(MyApp.MyClass).Populate(100) // Создает 100 объектов твоего класса
Хм, а можно плз поподробней? Например где обьявить класс? Лучше всего небольшой примерчик...
...
Рейтинг: 0 / 0
Помогите плз
    #34379139
Peter Zarubin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Класс User.Human, насколько я знаю есть в области SAMPLES, в области USERS ее нет. Можно экспортировать классы в XML- файл из области SAMPLES, а потом залить в область USER. Затем, добавить объявление %Populate и выполнить d ##class(MyApp.MyClass).Populate(100)
...
Рейтинг: 0 / 0
Помогите плз
    #34379354
Karrok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добавить обьявление... а где?) И еще в пример встречал - set zzz=##class(AAA.BBB).New(), это имеется ввиду что в классе ААА создается подкласс ВВВ? Или что ВВВ заполняется?
...
Рейтинг: 0 / 0
Помогите плз
    #34379436
solwolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>set zzz=##class(AAA.BBB).New(), это >имеется ввиду что в классе ААА создается подкласс ВВВ? >Или что ВВВ заполняется?

Когда Вы работаете с объектами, необходимо понимать, что для того чтобы заполнять класс данными необходимо его существование. Кроме того в классе должны присутствовать свойства класса (поля), именно в них Вы и заносите значения.

Выражение set zzz=##class(AAA.BBB).%New() означает, что создается объектная ссылка на новый экземпляр класса BBB, который находится в пакете AAA, какой либо области. То есть после создания ссылки Вы можете присваивать значения свойствам этого экземпляра класса. Предположим, что класс AAA.BBB имеет свойства Name и Date. Тогда присвоение значений свойствам происходит следующим образом:

set zzz.Name="Имя"
set zzz.Date="2007-01-01"

zzz.%Save()

Можно в студии написать метод класса, для заполнения данными и выполнить его в терминале
Do ##class(AAA.BBB).Method()
...
Рейтинг: 0 / 0
Помогите плз
    #34379553
Dmitry V. Liseev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi!

Karrok
Хм, а можно плз поподробней? Например где обьявить класс? Лучше всего небольшой примерчик...
Забудь. Нету в четвертом каше Populate. И студии нету. И "Class MyApp.MyClass Extends..." там нету.
Это продукт семилетней давности. И примерчик тебе никто не пришлет. Примерчик тебе в формате CDL нужен.
А этот формат уже давно не поддерживается. А четвертый каше у меня на Windows XP вообще не ставится.
Он только под NT & Win2000 работает. Так что смотри все примеры и документацию в своем Cache.
Тебе нужно написать свои классы в Object Architect и там их откомпиллировать. Тогда уже из терминала
можно будет наполнять их данными.
____________________________
С уважением, Лисеев Дмитрий.
http://private.peterlink.ru/dimik/
PGP key fingerprint: 09 28 74 28 6C 39 62 29 2E CB 95 03 4F 04 33 73

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Помогите плз
    #34379905
Karrok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Блин... я дурак(((
Надо было просто писать с большой буквы... забыл что где-то может присутствовать чуствительность к регистру. Спасибо за помощь)
Еще маааленький вопрос... как в скрипте должно выглядить... ммм ну например, в стандартном примере есть:
set TheCount = 9
set the(1) = ##class(Cinema.Theater).%New()
set the(1).TheaterName= "General Cinema Cambridge"
set the(2) = ##class(Cinema.Theater).%New()
set the(2).TheaterName= "Boston Multiplex"
set the(3) = ##class(Cinema.Theater).%New()
set the(3).TheaterName= "Loews Downtown"
set the(4) = ##class(Cinema.Theater).%New()
set the(4).TheaterName= "General Cinema Boston"
set the(5) = ##class(Cinema.Theater).%New()
set the(5).TheaterName= "Downtown Multiplex"
set the(6) = ##class(Cinema.Theater).%New()
set the(6).TheaterName= "Loews Cambridge"
set the(7) = ##class(Cinema.Theater).%New()
set the(7).TheaterName= "General Cinema Downtown"
set the(8) = ##class(Cinema.Theater).%New()
set the(8).TheaterName= "Cambridge Multiplex"
set the(9) = ##class(Cinema.Theater).%New()
set the(9).TheaterName= "Loews Boston"
это идет "заполнение" поля(свойства) TheaterName в классе Cinema, в подклассе Theater?
И после этого надо еще ввести:
for i=1:1:TheCount {
do (the(i)).%Save()
}
и оно занесет 9 записей, да?
...
Рейтинг: 0 / 0
Помогите плз
    #34379918
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Karrokэто идет "заполнение" поля(свойства) TheaterName в классе Cinema, в подклассе Theater?
Cinema.Theater - имя класса
Cinema - имя пакета
...
Рейтинг: 0 / 0
Помогите плз
    #34380048
Karrok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А какой будет результат выполнения такого текста? Будет внесено и сохранено в базу 9 значений названий кинотеатров?
...
Рейтинг: 0 / 0
Помогите плз
    #34380081
Peter Zarubin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтобы не париться с циклом можно было воспользоваться %Populate
...
Рейтинг: 0 / 0
Помогите плз
    #34380093
Karrok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dmitry V. Liseev
Забудь. Нету в четвертом каше Populate. И студии нету. И "Class MyApp.MyClass Extends..." там нету.

Говорят нету там такого.... у меня ж 4.0... то будет этот скрипт работать? В базе появятся 9 записей?
...
Рейтинг: 0 / 0
Помогите плз
    #34380172
Peter Zarubin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Открываешь свой класс Cinema.Theater
добавляешь %Populate (как ниже)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
/// Information about theaters and ticket prices.
Class Cinema.Theater Extends (%Library.Persistent,%Populate) [ ClassType = persistent, Not ProcedureBlock ]
{

Property AdultPrice As %Library.Float(MINVAL =  0 , SCALE =  2 );

Property ChildPrice As %Library.Float(MINVAL =  0 , SCALE =  2 );

Property TheaterName As %Library.String;

}

в терминале пишешь:
Код: plaintext
1.
d ##class(Cinema.Theater).Populate( 200 )

И в классе 200 объектов! и все!
...
Рейтинг: 0 / 0
Помогите плз
    #34380184
Peter Zarubin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да, а об этом я не знал, что %Populate 4.0 не поддерживает :(
...
Рейтинг: 0 / 0
Помогите плз
    #34380349
Karrok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все, проверил, внесло и сохранило)
Всем спасибо за помощь)))
...
Рейтинг: 0 / 0
Помогите плз
    #34381310
Karrok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сходил преподу... новый вопрос: Как запустить запрос? :)
...
Рейтинг: 0 / 0
Помогите плз
    #34382108
VadimF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это может быть шутка такая странная ...
Прочитайте все таки документ про работу с классами, который я Вам присылал.
Там есть все примеры, которые Вам нужны.

В методичке МИФИ у нас на сайте тоже есть примеры, которые Вам нужны. При этом там рассматривается старая версия Cache'.

В Cache' 4.0 вместо Cache' Studio был Object Architect для создания классов.
Программу для работы с запросом нужно было писать в Cache' Studio.
SQL-запрос по соответствующей классу таблице можно было писать в SQL-менеджере.

Спросите Вашего преподавателя, чем вызван выбор такой старой версии Cache'.
В рамках программы Cache' Campus InterSystems может предоставить Вашему институту последнюю версию.
Если можно, пришлите мне, пожалуйста, координаты преподавателя.

Вадим
...
Рейтинг: 0 / 0
Помогите плз
    #34383323
Karrok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Аську конкретно того препода неполучилось достать)
Вот аська одного из админов - 6024427
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Помогите плз
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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