Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Подружить классы
|
|||
|---|---|---|---|
|
#18+
Для двух простых классов Код: plaintext 1. 2. 3. 4. 5. 6. Код: plaintext 1. 2. 3. 4. посредством Код: plaintext 1. 2. Требуется привязать пользователя к паре логин-пароль. Пытался сделать так Код: plaintext 1. Код: plaintext 1. 2. Вопросы: 1. как правильно заполнить поля свойства? 2. как подружить эти две записи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2009, 21:57 |
|
||
|
Подружить классы
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. но так делать неправильно. используйте объектный доступ. Если решитесь использовать объекты, не забудьте класс User.FIO так же унаследовать от %SerialObject ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2009, 01:06 |
|
||
|
Подружить классы
|
|||
|---|---|---|---|
|
#18+
Сбивает с толку наименование поля FIO, котрое есть на самом деле не фио, а ссылка . В вашем случае я бы делал так Код: plaintext А лучше бы вам получить Ид пользователя и апдейтить сразу Ид Кстати хранить пароль в открытом виде плохо, используйте, например MD5 шифрование (%SYSTEM.Encryption кажется) И почему не хотите унаследоватькласс User.Account От класса User.FIO или сделать просто одну таблицу? авторно так делать неправильно. используйте объектный доступ. из чего следует неверный вывод, что неиспользовать объектный доступ неверно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2009, 05:36 |
|
||
|
Подружить классы
|
|||
|---|---|---|---|
|
#18+
автор...не забудьте класс User.FIO так же унаследовать от %SerialObject Зачем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2009, 07:54 |
|
||
|
Подружить классы
|
|||
|---|---|---|---|
|
#18+
Andrew Kovalchuk, А если так сделать? Class User.Account Extends %Persistent { Property Login As %String; Property Password As %String; Property FIO As %String [Calculated, SQLComputed, SqlComputeCode = {s {*}=$S(({personItem}>0):##class(User.FIO). FIOGetStored({personItem}),1:"")}]; Property personItem As User.FIO [Required]; } Class User.FIO Extends %Persistent { Property SurName As %String; Property Name As %String [ Required ]; Property LastName As %String; Proeprty FIO As %String (MAXLEN=200) [SqlComputed, SqlComputeCode = {s {*}={LastName}_" "_{Name}_" "_{SurName}}] } добавлять так: insert into User.FIO (surname, name, lastname) values ('Иванов', 'Иван', 'Иванович') insert into User.Account (login,password,personItem) values ('ltest', 'ptest',LAST_IDENTITY()) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2009, 08:04 |
|
||
|
Подружить классы
|
|||
|---|---|---|---|
|
#18+
=Dimon=Andrew Kovalchuk, А если так сделать? Class User.Account Extends %Persistent { Property Login As %String; Property Password As %String; Property FIO As %String [Calculated, SQLComputed, SqlComputeCode = {s {*}=$S(({personItem}>0):##class(User.FIO). FIOGetStored({personItem}),1:"")}]; Property personItem As User.FIO [Required]; } Class User.FIO Extends %Persistent { Property SurName As %String; Property Name As %String [ Required ]; Property LastName As %String; Proeprty FIO As %String (MAXLEN=200) [SqlComputed, SqlComputeCode = {s {*}={LastName}_" "_{Name}_" "_{SurName}}] } добавлять так: insert into User.FIO (surname, name, lastname) values ('Иванов', 'Иван', 'Иванович') insert into User.Account (login,password,personItem) values ('ltest', 'ptest',LAST_IDENTITY()) Proeprty FIO As %String (MAXLEN=200) [SqlComputed, SqlComputeCode = {s {*}={LastName}_" "_{Name}_" "_{SurName}}] читать как Property FIO As %String (MAXLEN=200) [SqlComputed, SqlComputeCode = {s {*}={SurName}_" "_{Name}_" "_{LastName}}] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2009, 08:08 |
|
||
|
Подружить классы
|
|||
|---|---|---|---|
|
#18+
Блок А.Н.авторно так делать неправильно. используйте объектный доступ. из чего следует неверный вывод, что неиспользовать объектный доступ неверно вывод не такой следует. во первых, поле FIO можно сделать As %String, если уж использовать sql, то использовать sql, а не описывать класс со встроенным объектом и пытаться "засунуть объект" sql'ем. я говорил что так не совсем правильно, т.к. потом, при открытии данных объектов в свойствах FIO у них ничего не будет, и данную информацию о fio получится узнать только через sql... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2009, 10:34 |
|
||
|
Подружить классы
|
|||
|---|---|---|---|
|
#18+
Ничего не понимаю. Зачем делать FIO как строку? Связывать потом с User.FIO через вычисление полей? Но это же ужас - преставьте лишние, абсолютно ненужные моменты при изменении фамилии. В чем смысл делать встроенное хранение? Почему "информацию о fio получится узнать только через sql"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2009, 12:29 |
|
||
|
Подружить классы
|
|||
|---|---|---|---|
|
#18+
Блок А.Н. Зачем делать FIO как строку? Связывать потом с User.FIO через вычисление полей? Но это же ужас - преставьте лишние, абсолютно ненужные моменты при изменении фамилии. я бы аккаунт отдельно от пользователей хранил. при удалении акаунта на сервере (не выставлении флага), информация о пользователе теряется, если их хранить вместе. Блок А.Н. В чем смысл делать встроенное хранение? Почему "информацию о fio получится узнать только через sql"? тут я ошибся, извиняюсь (встроенным тоже не нужно делать и получить удастся через объекты...правда у меня дома с первого раза не получилось). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2009, 13:45 |
|
||
|
Подружить классы
|
|||
|---|---|---|---|
|
#18+
конечно не fio как строку, я запутался. связывать через ид-ры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2009, 13:47 |
|
||
|
Подружить классы
|
|||
|---|---|---|---|
|
#18+
=Dimon=добавлять так: insert into User.FIO (surname, name, lastname) values ('Иванов', 'Иван', 'Иванович') insert into User.Account (login,password,personItem) values ('ltest', 'ptest',LAST_IDENTITY())Поправьте, если ошибаюсь, но такой вариант мне представляется потенциально небезопасным (в плане корректности данных) в случае внесения изменений в таблицу User.FIO между приведенными двумя insert'ами. Спасибо всем, кто принял участие в обсуждении. На деле все оказалось несколько банальнее, чем можно было предполагать. Напоследок подскажите где можно наблюдать корректные примеры реализаций (классов, процедур, функций и прочего с чем приходится сталкиваться) из жизни каше ? Кирстен постоянно перед глазами, но в книге оказалось больше теории и недосказанностей, нежели практических примеров. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2009, 01:21 |
|
||
|
Подружить классы
|
|||
|---|---|---|---|
|
#18+
Andrew KovalchukНапоследок подскажите где можно наблюдать корректные примеры реализаций (классов, процедур, функций и прочего с чем приходится сталкиваться) из жизни каше ? Кирстен постоянно перед глазами, но в книге оказалось больше теории и недосказанностей, нежели практических примеров. http://www.intersystems.ru/cache/devcorner/index.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2009, 13:00 |
|
||
|
|

start [/forum/topic.php?fid=39&msg=36336759&tid=1558296]: |
0ms |
get settings: |
6ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
131ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 220ms |
| total: | 410ms |

| 0 / 0 |
