powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Экспорт и Импорт из Cache части данных
6 сообщений из 31, страница 2 из 2
Экспорт и Импорт из Cache части данных
    #36414854
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterRus, "Или все уже давно освоили глобалы?"
Глобалы это "наше все", настоятельно рекомендую, очень развивает образное мышление. На досуге гляньте в проводнике глобалы с именем вашего класса + буквы D, I. Например: ^MyPackage.MyClassD, ^MyPackage.MyClassI. Поэксперементируйте, создайте хранимый класс, добавьте пару свойств, заполните и сохраните экземпляры через объектный интерфейс, просмотрите в проводнике соответствующие глобалы.. Будут вопросы, задавайте :)
...
Рейтинг: 0 / 0
Экспорт и Импорт из Cache части данных
    #36415193
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
doublefintkrvsa,
Как-то засомневался... У Вас класс, случаем, не с переопределенной схемой хранения? Или cвойство Id объявлено? Потому как для простого класса (Cache 5.020):
Код: plaintext
1.
2.
3.
 Class User.Test Extends %Persistent [ ClassType = persistent, ProcedureBlock ] {
  Property Name As %String;
 }
получим что-то вроде :
Код: plaintext
1.
2.
3.
4.
5.
6.
 USER>s t=##class(Test).%New()
 USER>s t.Id="2"
 
 S t.Id="2"
 ^
 <PROPERTY DOES NOT EXIST>

Код: plaintext
1.
2.
s par=##class(adm.Nast).%New() 
s par.Id="REGAUTO" 
d par.%Save()
просто Id в данном случае был переопределен и указан как IdKey
Код: plaintext
1.
2.
3.
4.
5.
6.
Class adm.Nast Extends %Persistent [ ClassType = persistent, ProcedureBlock ]
{

Property Id As %String [ Required ];

Index IdIndex On Id [ IdKey ];
}
...
Рейтинг: 0 / 0
Экспорт и Импорт из Cache части данных
    #36415204
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Класс как класс...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
/// 
Class adm.Nast Extends %Persistent [ ClassType = persistent, ProcedureBlock ]
{

Property Id As %String [ Required ];

Index IdIndex On Id [ IdKey ];

Property Params As array Of %String;

/// Получить значение по ключу
Method Get(Key As %String) As %String
{
	Q:Key="" ""
	Q ..Params.GetAt(Key)
}

/// все значения
/// nast  - название настройки
/// vals  - ссылочная переменная для записи в нее значений
ClassMethod All(nast As %String, vals)
{
	s par=##class(adm.Nast).%OpenId(nast)
	k vals
	q:+par= 0 
	S key=""
	F  S val=par.Params.GetNext(.key) Q:key=""  s vals(key)=val
	Q
}

/// Записать значение по ключу
Method Set(Key, Val As %String) As %Status
{
	D ..Params.SetAt(Val,Key)
	q  1 
}

}

Кащей вот только не такой...
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
...
Рейтинг: 0 / 0
Экспорт и Импорт из Cache части данных
    #36415212
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMorпросто Id в данном случае был переопределен и указан как IdKey
Код: plaintext
1.
2.
3.
4.
5.
6.
Class adm.Nast Extends %Persistent [ ClassType = persistent, ProcedureBlock ]
{

Property Id As %String [ Required ];

Index IdIndex On Id [ IdKey ];
}

Ну вот и автор отписался... Разъяснил.
...
Рейтинг: 0 / 0
Экспорт и Импорт из Cache части данных
    #36417832
MasteRus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Даже не хочется прерывать обсуждение, столько нового узнал за эти дни... Но буду честным
Всем спасибо за помощь, решил свою проблему немного иначе: Поскольку данные повредились во время апдейта, пострадали не все столбцы. Среди неповрежденных имелась комбинация полей, которая была уникальна в пределах таблицы. Таким образом, осталось экспортировать только относительно простые поля. Далее, простой экспорт в другую таблицу правильных значений, экспорт-импорт созданной таблицы через SQL-менеджер, и апдейт поврежденных записей до правильного состояния.
Выводы:
1. Никаких изменений в рабочей системе 30-31 декабря!!!
2. При апдейте данных нужно производить перестройку индексов, иначе могут быть видны старые данные
3. Исходная задача достаточно интересна в своей общей постановке, надо бы попытаться все-таки решить её полностью.
4. Неплохо бы изучить глобалы.
...
Рейтинг: 0 / 0
Экспорт и Импорт из Cache части данных
    #36422954
2. Поскольку у вас не менялись структуры данных, то в этом конкретном случае это неважно, но частая причина непонятностей в работе системы - оставшиеся кэшированные SQL-запросы. При операциях переноса чего-либо с сервера на сервер их бывает полезно чистить.
4. В документации есть неплохой Tutorial по использованию глобалов:

- Using Cache' Globals
http://docs.intersystems.com/cache20091/csp/docbook/DocBook.UI.Page.cls?KEY=GGBL
- и еще полезные вещи есть в Cache Object Script Tutorial - http://docs.intersystems.com/cache20091/csp/docbook/DocBook.UI.Page.cls?KEY=TCOS


http://writeimagejournal.com - InterSystems Russia Technology Blog.

http://writeimagejournal.com/forum - InterSystems Russia Technology Community.
...
Рейтинг: 0 / 0
6 сообщений из 31, страница 2 из 2
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Экспорт и Импорт из Cache части данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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