Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Данные класса не в $LB, а в узлах / 18 сообщений из 18, страница 1 из 1
23.03.2012, 08:55
    #37719367
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Данные класса не в $LB, а в узлах
Озадачился следующим вопросом - есть ли некий переключатель в описании класса, позволяющий, хранить данные класса не в $LB, а в узлах?

Т.е. стандартный вариант

Код: vbnet
1.
s ^tmp.testD(<ID>)=$lb(<val1>,<val2>,...,<valN>)



Меняет на

Код: vbnet
1.
2.
3.
4.
s ^tmp.testD(<ID>,<fld1>)=<val1>
s ^tmp.testD(<ID>,<fld2>)=<val2>
...
s ^tmp.testD(<ID>,<fldN>)=<vaN1>



Может есть вариант с наследованием, дабы один раз описать такое и потом наследоваться?

Просто надоело уже дырки в $LB() "затыкать"...
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
Cache for Windows (x86-32) 2009.1.3 (Build 704_0_9104) Mon Mar 8 2010 19:31:10 EST
...
Рейтинг: 0 / 0
23.03.2012, 09:56
    #37719433
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Данные класса не в $LB, а в узлах
Да, вы можете сделать свое собственное хранение.
...
Рейтинг: 0 / 0
23.03.2012, 10:32
    #37719507
DAiMor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Данные класса не в $LB, а в узлах
ну да описанием своего способа хранения, можно придумать все что угодно, для описания способа хранения есть визуальный редактор, для удобства.
так же полагаю, что можно сделать метод вызываемый перед компиляцией, который бы мог править существующие хранение добавляя поля добавленные программистом, чтобы ему не приходилось каждый раз еще и править хранение
...
Рейтинг: 0 / 0
23.03.2012, 13:19
    #37719951
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Данные класса не в $LB, а в узлах
Блок А.Н.Да, вы можете сделать свое собственное хранение.
Это-то понятно...

Но не хочется делать манипуляции для каждого класса...

Посмотрел так же работу со стораджем... Она теперь вовсе не такая как была ранее. Есть 3 варианта:
- $LB()
- одно значение
- массив

Второй явно неподходит... С третьим полная непонятка...
...
Рейтинг: 0 / 0
23.03.2012, 13:19
    #37719952
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Данные класса не в $LB, а в узлах
DAiMorтак же полагаю, что можно сделать метод вызываемый перед компиляцией, который бы мог править существующие хранение добавляя поля добавленные программистом, чтобы ему не приходилось каждый раз еще и править хранение
И такое так же не хотелось бы делать...
...
Рейтинг: 0 / 0
24.03.2012, 01:42
    #37721048
doublefint
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Данные класса не в $LB, а в узлах
krvsaИ такое так же не хотелось бы делать...
Остап БендерКиса, скажите мне как художник художнику...вы рисовать умеете?
...
Рейтинг: 0 / 0
24.03.2012, 08:06
    #37721125
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Данные класса не в $LB, а в узлах
Это 5!
...
Рейтинг: 0 / 0
24.03.2012, 10:23
    #37721155
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Данные класса не в $LB, а в узлах
doublefint , нет, рисовать не умею...
...
Рейтинг: 0 / 0
24.03.2012, 14:05
    #37721284
doublefint
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Данные класса не в $LB, а в узлах
krvsa, у каждого свои недостатки... что насчет чувства юмора? ;(
Можно по-подробнее про "дырки" $LISTBUILD?
...
Рейтинг: 0 / 0
24.03.2012, 18:57
    #37721469
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Данные класса не в $LB, а в узлах
doublefintМожно по-подробнее про "дырки" $LISTBUILD?
Там все элементы, в том числе и свойства, имеют статичную позицию в $LB()... В ходе эксплуатации ПО свойства добавляются, удаляются... И в $LB() образуются "дырки".
Т.е. если удалили свойства с позициями pN и pM, то в $LB() в позициях pN и pM останутся старые данные, а в новых экземплярах будут ""...
Дабы такого небыло, приходится проводить профилактические мероприятия:
- удалять хранение класса
- заново компилить класс
- анализировать как теперь располагаются свойства относительно позиций их данных в $LB()
- выполнять перепресвоение данных в их же свойства, дабы они "встали" в нужные позиции $LB()
...
Рейтинг: 0 / 0
24.03.2012, 19:26
    #37721484
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Данные класса не в $LB, а в узлах
Жесть какая-то. Зачем удалять хранение? Там же данные лежат.

Чем вам мешают дырки? Места они практически не занимают.
Или у вас десятки раз в классе удаляются и добавляются поля? Тогда странно, нужно что-то делать с иделогией хранения вообще.
При добавлении нового поля можно просто новое поле добавить в "дырку". Кстати, лучше бы подправить докуматик, чтобы он хранение показывал с нумерацией позиций.

Как вариант - вообще сделать Custom хранение, вам придется самому написать метод LoadData и SaveData, но зато сможете реализовать произвольно извращенскую схему. SQL, правда, работать не будет.
...
Рейтинг: 0 / 0
24.03.2012, 21:46
    #37721545
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Данные класса не в $LB, а в узлах
Блок А.Н.Зачем удалять хранение? Там же данные лежат.
Данные лежат в глобале, а не в описании хранения...

Блок А.Н.Чем вам мешают дырки? Места они практически не занимают.
Или у вас десятки раз в классе удаляются и добавляются поля?
Они мне не нравятся. Сплю плохо из-за этого...
Да. Структура меняется по прошествии лет часто...

Блок А.Н.Тогда странно, нужно что-то делать с иделогией хранения вообще.
Например поля в узлах, как я уже описал, нам подошли бы идеально. Но мастер в сторадже уже не такой как ранее был и как там сделать такое я уже х/з...
Да и объяснять какжыё раз каждому прогеру дюже утомительно. Проверяй потом не ошиблись ли где...

Блок А.Н.Как вариант - вообще сделать Custom хранение, вам придется самому написать метод LoadData и SaveData, но зато сможете реализовать произвольно извращенскую схему. SQL, правда, работать не будет.
Подземный ход на чердак можно рыть долго и нудно...
...
Рейтинг: 0 / 0
24.03.2012, 22:04
    #37721560
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Данные класса не в $LB, а в узлах
krvsaБлок А.Н.Зачем удалять хранение? Там же данные лежат.
Данные лежат в глобале, а не в описании хранения... Да, я в курсе. Все-таки столько лет уже...
Но без метаданных или с поврежденными метаданными можно сказать, что данные теряются.

krvsaБлок А.Н.Чем вам мешают дырки? Места они практически не занимают.
Или у вас десятки раз в классе удаляются и добавляются поля?
Они мне не нравятся. Сплю плохо из-за этого... Дык это на форум взаимопомощи анонимных программистов.

krvsaБлок А.Н.Тогда странно, нужно что-то делать с иделогией хранения вообще.
Например поля в узлах, как я уже описал, нам подошли бы идеально. Но мастер в сторадже уже не такой как ранее был и как там сделать такое я уже х/з...
Да и объяснять какжыё раз каждому прогеру дюже утомительно. Проверяй потом не ошиблись ли где...
Если хз - то значит вы не пробовали, и все ваши причины отказа - отмазки.
А вы попробуйте, там ничего страшного нет, хотя и не все очевидно. Тем более, если в старом мастере вы это делали, то и в новом сделаете. А после того, как сделаете руками - можете попробовать автоматизировать это процесс

krvsaБлок А.Н.Как вариант - вообще сделать Custom хранение, вам придется самому написать метод LoadData и SaveData, но зато сможете реализовать произвольно извращенскую схему. SQL, правда, работать не будет.
Подземный ход на чердак можно рыть долго и нудно... Как вам пытался намекнуть doublefint - вы программист или где?
Вам не нравится стардартный механизм, но нестандартный вы реализовывать отказываетесь. Тут уж надо одно из двух.
...
Рейтинг: 0 / 0
25.03.2012, 13:40
    #37721863
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Данные класса не в $LB, а в узлах
Блок А.Н.Дык это на форум взаимопомощи анонимных программистов.
Если там могут предложить некий простой и приемлемый способ - мне не особо важно кто его предложил...

Блок А.Н.Как вам пытался намекнуть doublefint - вы программист или где?
Я не программер. И мне не нужны такие заморочки. Меня устроит только простое решение проблемы...
Пока это простое "удаление" "дыр" время от времени... Раз в год напроимер.
...
Рейтинг: 0 / 0
27.03.2012, 20:24
    #37726191
servit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Данные класса не в $LB, а в узлах
krvsaесть ли некий переключатель в описании класса, позволяющий, хранить данные класса не в $LB, а в узлах?Стандартного переключателя нет.
krvsaПросто надоело уже дырки в $LB() "затыкать"...
...
Т.е. если удалили свойства с позициями pN и pM, то в $LB() в позициях pN и pM останутся старые данные, а в новых экземплярах будут ""...
...
Они мне не нравятся. Сплю плохо из-за этого...Перед удалением поля очищайте его: update tbl set field=null
При добавлении нового поля вставляйте его на место удалённых полей.
...
Рейтинг: 0 / 0
28.03.2012, 14:47
    #37727496
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Данные класса не в $LB, а в узлах
servitПеред удалением поля очищайте его: update tbl set field=null
При добавлении нового поля вставляйте его на место удалённых полей.
Мы пока просто "чистим" классы с некой периодичностью и все...
Не вижу смысла заставлять программистов проделывать таки манипуляции с классом всякий раз...
...
Рейтинг: 0 / 0
06.04.2012, 14:23
    #37741983
D_De1mos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Данные класса не в $LB, а в узлах
Объясните мне пожалуйста, почему дырки вам мешают?
Они занимают лишнее место? - ваш способ хранения более избыточен.
Скорость? - сомневаюсь, что обращение к каждому подузлу глобала будет лучше, чем разобрать в памяти $LB
...
Рейтинг: 0 / 0
06.04.2012, 16:35
    #37742284
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Данные класса не в $LB, а в узлах
D_De1mosОбъясните мне пожалуйста, почему дырки вам мешают?
Я вроде как написал уже про это выше...
...
Рейтинг: 0 / 0
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Данные класса не в $LB, а в узлах / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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