powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Идентификатор экземпляра класса, как создать и использовать
3 сообщений из 3, страница 1 из 1
Идентификатор экземпляра класса, как создать и использовать
    #37160304
dampir_sanek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте! Есть простой класс.

Class MyApp.Student Extends (%Persistent, %Populate, %XML.Adaptor)
{
// Главный класс для хранения информации о студентах

Property Name As %String [ Required ];

// ФИО студента

Property NumberOfStudTicket As %Integer [ Required ];

// номер студенческого

Index indexOfStudID On NumberOfStudTicket [ PrimaryKey, Unique ];

// индекс по номерам студенческого

}
и есть метод
// поиск обьекта в базе по номеру студенческого

ClassMethod searchStudentByStudID(studID As %String) As Student [ WebMethod ]
{
s query = ##class(%ResultSet).%New("%DynamicQuery:SQL")
do query.Prepare("SELECT ID, Name, NumberOfStudTicket FROM MyApp.Student WHERE NumberOfStudTicket = ?")
do query.Execute(studID)
do query.%Next()
s id = query.Data("ID")
q ##class(MyApp.Student).indexOfStudIDOpen(studID)
}

и есть такое задание:
Поиск одного объекта в базе - необходимо доработать, используя идентификатор.
1. передавать на клиент идентификатор объекта(ID создающийся по умолчанию).
2. сделать поле NumberOfStudTicket первичным ключом, и работать через него(для этого нужно создать специальный индекс).
Решил сделать по второму варианту.
Вопрос: правильно ли организован поиск объекта в базе, удовлетворяет ли он требованиям пункта 2?
Создал уникальный индекс по полю NumberOfStudTicket, он же первичный ключ, а вот в методе я его не использую.
Понимаю, что нужно сделать так, чтобы поле NumberOfStudTicket было уникально для каждого студента, и не могу понять добился я того или нет..
...
Рейтинг: 0 / 0
Идентификатор экземпляра класса, как создать и использовать
    #37160363
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dampir_sanek ,

/// Главный класс для хранения информации о студентах
Class MyApp.Student Extends %Persistent
{

/// индекс по номерам студенческого
Index indexOfStudID On NumberOfStudTicket [ Unique ];

/// ФИО студента
Property Name As %String [ Required ];

/// номер студенческого
Property NumberOfStudTicket As %Integer [ Required ];

ClassMethod searchStudentByStudID(studID As %String) As MyApp.Student [ CodeMode = expression, WebMethod ]
{
..indexOfStudIDOpen(studID)
}

}

Или

/// Главный класс для хранения информации о студентах
Class MyApp.Student Extends %Persistent
{

/// индекс по номерам студенческого
Index indexOfStudID On NumberOfStudTicket [ IdKey, PrimaryKey ];

/// ФИО студента
Property Name As %String [ Required ];

/// номер студенческого
Property NumberOfStudTicket As %Integer [ Required ];

ClassMethod searchStudentByStudID(studID As %String) As MyApp.Student [ CodeMode = expression, WebMethod ]
{
..%OpenId(studID)
}

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


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