powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Данные из глобали Cache
25 сообщений из 62, страница 2 из 3
Данные из глобали Cache
    #35009430
Фотография 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.
PRIMER
 n 
 s file="c:\box\data.txt"
 s drv=##class(%File).%New(file)
 d drv.Open("WSN")
 s name=$o(^$g(""))
 while name'="" {
	 d GLB
	 s name=$o(^$g(name))
 }
 d drv.Close()
 q
GLB ; Очередной глобал
 n glb
 q:$$NoGlb
 s glb=name
 if $d(@glb)#10 {
	 d drv.WriteLine(glb)
	 d drv.WriteLine(@glb)
 }
 s glb=$q(@glb)
 while glb'="" {
	 d drv.WriteLine(glb)
	 d drv.WriteLine(@glb)
	 s glb=$q(@glb)
 }
 q
NoGlb() ; Эти глобали нафик не нужны...
 ; Тут нужно разместить условия проверки имен глобалов
 q  0 
Но этот код я уже не тестировал...
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
Данные из глобали Cache
    #35009505
girl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
запись в файл у меня есть, мне эт на делфи надо...
т.е. с указанием глобали в указанной области все работает (прикрипляю исходник)
нуно в указанной области из всех глобалей данные, т.е. нужно че то дабавить что бы раюотало как надо...
...
Рейтинг: 0 / 0
Данные из глобали Cache
    #35010822
girl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Игорь Сойников]До завтра потерпишь?[quot]
уже завтра... :-[
...
Рейтинг: 0 / 0
Данные из глобали Cache
    #35011206
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Girl, расскажите немного о себе :)
Вы студентка? Курсовая горит? - я угадал?

Если нет :), и действительно предстоит вывод нескольких гигабайт, то подобные технологии (обход по $Query и передача клиенту узел за узлом) мало подходят. Часами будет копироваться (ночи может не хватить :) Для таких объемов имеет смысл использовать либо какой-то вариант BACKUPа, либо блочное копирование (%GOF).

Сейчас как раз заканчиваю подобную разработку - "Remote %GOF". Скорость получается порядка 1Гб в час. Имеющийся аналог (основанный на $Query()), который, собственно, и предстоит заменить, работает на порядок медленнее.
...
Рейтинг: 0 / 0
Данные из глобали Cache
    #35011262
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey MaslovGirl, расскажите немного о себе :)
Ага. Пусть фотки выкладывает! Будем знакомиться...
...
Рейтинг: 0 / 0
Данные из глобали Cache
    #35011603
Alexey MaslovКурсовая горит? - я угадал?Скорее всего, угадали, учитывая, что дать чуть более развернутое объяснение, какая в принципе задача решается, автор отказалась.
...
Рейтинг: 0 / 0
Данные из глобали Cache
    #35013743
girl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Борис Егоров Alexey MaslovКурсовая горит? - я угадал?Скорее всего, угадали, учитывая, что дать чуть более развернутое объяснение, какая в принципе задача решается, автор отказалась.
не не... не от чего не отказываюсь... просто на выходных не меня было :)
эт не курсовая! реальная программа нужна, просто не знаю как правильно реализовать.
объем данных дельствительно большой гиго-информаций... исходник на дельфи (который прикрепляла ранее) делат необходимое задание но только с одной указанной глобалью в указанной области. На каше в принципе у меня кода как такового нет (там пару строк и то прописанные в делфи), может мне просто надо что то и как то в делфи написать или указать...

т.е. в экзешнике прописываю так:
-----
Область: USER
Глобаль: ^aa("Name") //так записывает все данные из ^aa(Name)
или
Область: USER
Глобаль: ^aa //так записывает всё из глобали ^aa
-----

возможно в экзешнике как-то указать на все глобали в указанной области?
...
Рейтинг: 0 / 0
Данные из глобали Cache
    #35013750
girl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и кстати я уже не студентка :)) ... просто ранее с Cache не сталкивалась, а работала на SQL - вот теперь и пытаюсь разбираться....
...
Рейтинг: 0 / 0
Данные из глобали Cache
    #35013800
logist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет.

> объем данных дельствительно большой гиго-информаций... исходник на
> дельфи (который прикрепляла ранее) делат необходимое задание но только с
> одной указанной глобалью в указанной области. На каше в принципе у меня

К сожалению, приложенный код на Дельфи весьма далек от совершенства - он берет
напрямую с формы значение имени глобали. Вам придется переписать его в виде
процедуры, каким-то образом принять из Каше список глобалей (в Вашем случае
проще всего, видимо, работать через ^$G), и потом их скармливать по одной
полученной процедуре.

Выходной файл этой процедуры будет в несколько десятков раз больше размера самой
базы Каше, т.к. узлы в нем лежат не упакованные, а Каше их при хранении пакует.

Кроме того, насколько я понял текст программы, она еще и работает неправильно -
пустые узлы почему-то не сохраняются в файл.

Настоятельно рекомендую не изобретать свою утилиту, а пользоваться стандартными
утилитами Каше по экспорту/импорту глобалей или резервному
копированию/восстановлению базы.

Любви.
logist (Сергей Шутов)
ООО Димас, Хабаровск
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Данные из глобали Cache
    #35013925
girl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
logistК сожалению, приложенный код на Дельфи весьма далек от совершенства - он берет
напрямую с формы значение имени глобали. Вам придется переписать его в виде
процедуры, каким-то образом принять из Каше список глобалей (в Вашем случае
проще всего, видимо, работать через ^$G), и потом их скармливать по одной
полученной процедуре.
т.е. в принципе, то что предлогал krvsa (тут данные в файл а мне надо сначала глобили): ??
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.
PRIMER
 n 
 s file="c:\box\data.txt"
 s drv=##class(%File).%New(file)
 d drv.Open("WSN")    // кстати WSN - эт что такое?
 s name=$o(^$g(""))
 while name'="" {
	 d GLB
	 s name=$o(^$g(name))
 }
 d drv.Close()
 q
GLB ; Очередной глобал
 n glb
 q:$$NoGlb
 s glb=name
 if $d(@glb)#10 {
	 d drv.WriteLine(glb)
	 d drv.WriteLine(@glb)
 }
 s glb=$q(@glb)
 while glb'="" {
	 d drv.WriteLine(glb)
	 d drv.WriteLine(@glb)
	 s glb=$q(@glb)
 }
 q
NoGlb() ; Эти глобали нафик не нужны...
 ; Тут нужно разместить условия проверки имен глобалов
 q  0 
...
Рейтинг: 0 / 0
Данные из глобали Cache
    #35014159
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Logist, почему же работает неправильно?
Код: plaintext
VisM1.Execute('S P1=$Q(@P1)');
"Классический" проход по $Q(), скопирует весь глобал. Другой вопрос, что такое решение не адекватно задаче (несколько Гбайт таким способом хорошо если за сутки скопируются), но об этом уже писал.
...
Рейтинг: 0 / 0
Данные из глобали Cache
    #35014253
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для нескольких гигабайт использование VISM тоже не совсем адекватно.
...
Рейтинг: 0 / 0
Данные из глобали Cache
    #35014272
girl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
че то я запуталась...
как мне все таки лучше сделать с помощью делфи и каше?? :(
...
Рейтинг: 0 / 0
Данные из глобали Cache
    #35014383
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А можно все-таки еще задачу полностью, а то может это все совсем зря и нужно что-то другое?
...
Рейтинг: 0 / 0
Данные из глобали Cache
    #35014388
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То есть куда и с какой целью выводим и при чем тут вообще делфи?
...
Рейтинг: 0 / 0
Данные из глобали Cache
    #35014484
girl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вообщем так:
есть несколько локальных баз данных и соответствующих к ним областей на каше: USER1 USER2 USER3...
в каждой области есть свои созданные глобалы, соответсвенно в каждой глобале есть свои данные. Причем данные очень больших объемов.
мне нужно указать область каше и записать все данные из всех глобалей этой области в файл и затем чтобы из файла их можно было снова записать все в ту же область.
стандартный метод через каше импорт и экспорт не подходит, т.к. обыкновенный пользователь с этим не справиться.
Поэтому нужно реалиовать это все обычной программой. (пишу на делфи5 и каше)
если только через каше - не подходит, тут нужно больше через делфи...
в прикрепленном исходнике: запись происходит с помощью WriteBuffer и созданием TMemoryStream (скорость где-то 10мб/сек)... но исходник работает только на указание области и глобали.
...
Рейтинг: 0 / 0
Данные из глобали Cache
    #35014556
Игорь Сойников
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
там только выгрузка в файл и исправлена ошибка - не выгружались пустые записи
...
Рейтинг: 0 / 0
Данные из глобали Cache
    #35014576
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужен backup/restore с человеческим лицом?
...
Рейтинг: 0 / 0
Данные из глобали Cache
    #35014614
girl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на этом
Код: plaintext
 if VisM1.P3[ 2 ] <> '%' then begin 
выскакивает ошибка "Variant is not an array"
...
Рейтинг: 0 / 0
Данные из глобали Cache
    #35014630
girl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если без проверки и отбрасывания сист.глоб. то работает но очень медленно.....
...
Рейтинг: 0 / 0
Данные из глобали Cache
    #35014650
girl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блок А.Н.Нужен backup/restore с человеческим лицом?
да... конечно... а он будет выполнять то что мне надо?
...
Рейтинг: 0 / 0
Данные из глобали Cache
    #35014660
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Girl , расскажы зачем глобалы туда/сюда гонять-то? Сначала в файл... Потом из файла...
Дешевле весь файл cache.dat заархивировать и все.
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
Данные из глобали Cache
    #35014662
Игорь Сойников
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
работать по определению будет долго поскольку по сети на клиента будут переданы все данные, а их по Вашему определению очень много.
восстановление будет работать как и в начальном варианте.
для проверки сначала присвойте str:=VisM1.P1, а затем str[2]<>'%'
...
Рейтинг: 0 / 0
Данные из глобали Cache
    #35014671
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У нас даже программка для бекапа есть! Там пользователю "дается" всего две кнопки:
- Архивировать
- Копировать
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
Данные из глобали Cache
    #35014769
girl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
была лишняя строка
Код: plaintext
if str = '1' then
из за нее не доходило до записи в файл
Код: plaintext
WriteZAP(VisM1.P3, VisM1.P2);

кстати в файл записываются только названия глобалей ... :(
...
Рейтинг: 0 / 0
25 сообщений из 62, страница 2 из 3
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Данные из глобали Cache
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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