powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / глобалы и net приложение
25 сообщений из 90, страница 2 из 4
глобалы и net приложение
    #35781789
=Dimon=
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
echo123и самое главное
у меня вот это
Cache for Windows NT (Intel/P4) 5.0.15 (Build 5802) Fri Mar 18 2005 13:05:32 EST

Это совсем не страшно
...
Рейтинг: 0 / 0
глобалы и net приложение
    #35781804
Фотография ceshka_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
echo123,
ИМХО, структура наводит на мысли, что база всё-таки структурирована :), и изобретать велосипед с доставанием данных нет необходимости, рутины (классы) уже должны быть в базе, данные же не рандомно туда попали, нужно только их найти, а к ним либо уже есть обращение как к методам класса или просто через рутины, либо нужно просто написать точку входа для их вызова.
...
Рейтинг: 0 / 0
глобалы и net приложение
    #35781811
Фотография ceshka_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
например поиск по ^PAPER пробовали?
...
Рейтинг: 0 / 0
глобалы и net приложение
    #35781835
Фотография 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 tmp.Data [ Abstract ]
{

/// Следующий или предыдущий ID
ClassMethod Order(Id As %String, Type As %String =  1 ) As %String
{
	s Id=$g(Id)
	s Id=$o(^PAPER(Id),Type)
	q Id
}

/// Вернет ФИО по ID
ClassMethod GetFIO(Id As %String) As %String
{
	s uz=$o(^PAPER(Id,"KEYW",""))
	q:uz="" ""
	s fio=$p(^PAPER(Id,"KEYW",uz),"^")
	s uz=$o(^PAPER(Id,"KEYW",uz))
	q:uz="" fio
	s fio=fio_" "_$p(^PAPER( 2 ,"KEYW",uz),"^")
	s uz=$o(^PAPER(Id,"KEYW",uz))
	q:uz="" fio
	s fio=fio_" "_$p(^PAPER(Id,"KEYW",uz),"^")
	q fio
}

/// Вернет адрес по ID
ClassMethod GetAdr(Id As %String) As %String
{
	s adr=$g(^PAPER(Id,"PER","ADD", 1 ))
	s val=$g(^PAPER(Id,"PER", 6 ))
	s adr=adr_" "_$p(val,"^", 10 )
	s adr=adr_" квартира "_$p(val,"^", 11 )
	q adr
}

}

----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
...
Рейтинг: 0 / 0
глобалы и net приложение
    #35781849
=Dimon=
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне кажется, что список проще будет получить не через SQL, а простым обращением к объекту.
1) способ
Делаете класс
Class DataSet Extends %RegisteredObject
{
Property lastKey As %String [InitialExpression = "^PAPER"];

ClassMethod Initialize() As %Status
{
//происходит создание нового экземпляра DataSet
//инициализируется количество элементов в списке
}

Method RecordCount() As %Integer
{
q xxx
}

Method GetRecord(pos As %Integer) As %String
{
//спозиционироваться на нужном ключе $Q(^PAPER,pos)
// прочитать все записи в переменные либо вообще каждый раз формировать нужную глобаль в
// initialize
//вернуть можно запись как xml. в dotNet проблем не составит реализовать свой датасет
// который работает с такими структурами
}

Method SetRecord(pos As %Integer, value As %String) As %Status
{
//положить xml в глобалы
}

}
2) способ
Если же вам все таки нужен SQL то можно сделать так как написано в статье у Каратаева.
Описываете свой класс с нужными вам полями. При открытии Query или перед его открытием запускаете процедуру которая вызовет в свою очередь программу и создаст нужную вам глобаль
типа
PERSONS_$JOB и скопирует туда все данные из имеющейся ^PAPER.

3)
Можно предложить вообще простой вариант. Сначала вызываете хранимку, она подготовит вам временную таблицу на каше из глобалов. Вы SQL Readerом прочитаете ее, а потом удалить.
Также и запись. Но это совсем просто. :) И замутно
...
Рейтинг: 0 / 0
глобалы и net приложение
    #35781865
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В моем коде нужно исправить строчку

Код: plaintext
s fio=fio_" "_$p(^PAPER( 2 ,"KEYW",uz),"^")

на

Код: plaintext
s fio=fio_" "_$p(^PAPER(Id,"KEYW",uz),"^")
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
...
Рейтинг: 0 / 0
глобалы и net приложение
    #35781872
echo123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
на самом деле это пациенты потому признака увольнения быть не может
подозреваю что количество записей кроется где то здесь
^PAPER(0)=95806
^PAPER(0,"CNT")=
^PAPER(0,"CNT","ANA")=
^PAPER(0,"CNT","I")=95797
^PAPER(0,"CNT","OPER")=
глобал на 600 мегабайт
...
Рейтинг: 0 / 0
глобалы и net приложение
    #35781874
echo123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
на самом деле это пациенты потому признака увольнения быть не может
подозреваю что количество записей кроется где то здесь
^PAPER(0)=95806
^PAPER(0,"CNT")=
^PAPER(0,"CNT","ANA")=
^PAPER(0,"CNT","I")=95797
^PAPER(0,"CNT","OPER")=
глобал на 600 мегабайт
...
Рейтинг: 0 / 0
глобалы и net приложение
    #35781898
echo123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ceshka_,
каким образом туда данные попадают я не знаю, точнее каким образом медтрак их туда записывает
классов в этой области вобще нет. Может быть такое что классы для обращения к этой области находятся в другой области?
что значит делать поиск по ^PAPER?
...
Рейтинг: 0 / 0
глобалы и net приложение
    #35781918
echo123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsa,
а если нужно делать поиск по фамилиям а не по ID?
...
Рейтинг: 0 / 0
глобалы и net приложение
    #35781923
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
echo123Может быть такое что классы для обращения к этой области находятся в другой области?
Теоретически "да". Но судя по количеству узлов в глобале и значениям, я сильно сомневаюсь что это классы...

Ты примерчик мой смотрел?
...
Рейтинг: 0 / 0
глобалы и net приложение
    #35781935
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
echo123а если нужно делать поиск по фамилиям а не по ID?
Тогда добавим еще один метод! Типа

Код: plaintext
1.
2.
3.
s id=##class(tmp.Data).GetId(fio)
w !,##class(tmp.Data).GetFIO(id)
w !,##class(tmp.Data).GetAdr(id)
...
Рейтинг: 0 / 0
глобалы и net приложение
    #35781943
echo123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsa,
да смотрел, спасибо большое, буду уже от него играть, но я так и не понял, можно ли сделать поиск по фамилиям, или может для этого могли сделать другую глобаль в которой уже идёт фамилия и ID&
...
Рейтинг: 0 / 0
глобалы и net приложение
    #35781947
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
echo123 , там по идее должен быть глобал с ихними индексами... Вот по нему и нужно шукать Id по ФИО...

Если индекса нет - только перебором...
...
Рейтинг: 0 / 0
глобалы и net приложение
    #35781955
echo123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да уж перебором это конечно же жесть, не думаю что разработчики изначально задумывали такую идею
...
Рейтинг: 0 / 0
глобалы и net приложение
    #35781968
echo123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
логика всё таки есть не долго думая ^PAPERi
^PAPERi("ALM_CloseFlag","N",43270,1)=
^PAPERi("ALM_CloseFlag","N",72076,1)=
^PAPERi("ALM_CloseFlag","N",88884,1)=
^PAPERi("ALM_CloseFlag","Y",629,1)=
^PAPERi("ALM_CloseFlag","Y",2354,2)=
^PAPERi("ALM_CloseFlag","Y",24588,1)=
^PAPERi("ALM_CloseFlag","Y",34476,1)=
^PAPERi("ALM_CloseFlag","Y",46077,1)=
^PAPERi("ALM_CloseFlag","Y",55081,1)=
^PAPERi("ALM_CloseFlag","Y",57843,1)=
^PAPERi("ALM_CloseFlag","Y",60315,1)=
^PAPERi("ALM_CloseFlag","Y",60948,1)=
^PAPERi("ALM_CloseFlag","Y",62302,1)=
^PAPERi("ALM_CloseFlag","Y",72735,1)=
^PAPERi("ALM_CloseFlag","Y",72735,2)=
^PAPERi("ALM_CloseFlag","Y",84270,1)=
^PAPERi("DOB",0,"?????????",72644)=
^PAPERi("DOB",0,"А",78693)=
^PAPERi("DOB",0,"АБРОСИМОВ",65499)=
^PAPERi("DOB",0,"АКУЛИЧ",10387)=
^PAPERi("DOB",0,"АЛАДЬКО",9185)=
^PAPERi("DOB",0,"АЛЕКСЕЕВА",67232)=
^PAPERi("DOB",0,"АЛИЕВ",66333)=
^PAPERi("DOB",0,"АЛИЕВА",68436)=
^PAPERi("DOB",0,"АЛКОР",8030)=
...
Рейтинг: 0 / 0
глобалы и net приложение
    #35782001
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я до конца дня в отъезде... Т.ч. пока.
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
...
Рейтинг: 0 / 0
глобалы и net приложение
    #35782015
Фотография ceshka_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
echo123ceshka_,
каким образом туда данные попадают я не знаю, точнее каким образом медтрак их туда записывает
классов в этой области вобще нет. Может быть такое что классы для обращения к этой области находятся в другой области?
что значит делать поиск по ^PAPER?
шифт+контрол+Эф в студии, поставить галочку искать в системных елементах, как на картинке

просто если вы начнете например вносить изменения в базу, то ето точно можно только методами той системы, которая уже есть
...
Рейтинг: 0 / 0
глобалы и net приложение
    #35782054
echo123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ceshka_,

:\ у меня в студии к сожалению не обрабатывается данная комбинация клавиш
или может курсор должен в какой то позиции определённой стоять, или может у меня студия старая
...
Рейтинг: 0 / 0
глобалы и net приложение
    #35782073
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Опять МедТрак кто-то ломает... Стоит ли ломиться в открытую дверь? Все там есть: и внутренний реляционный доступ, и ODBC-интерфейс, и многое другое, а также высококвалифицированный поставщик / саппортер на территории России :)
Призыв к коллегам: ребята, давайте жить дружно. Стоит ли помогать анонимам ломать продукты, поставляемые членами нашего совсем небольшого сообщества?
...
Рейтинг: 0 / 0
глобалы и net приложение
    #35782088
echo123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
блин да причём здесь ломать, мне нужно сделать отчёт
...
Рейтинг: 0 / 0
глобалы и net приложение
    #35782121
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В МедТраке это можно делать несколькими способами, в частности, через подключение внешнего генератора отчетов по ODBC. Если Вы новый человек и чего-то не знаете (что нормально), почему бы не обратиться к вашему поставщику MedTrak? Куда писать/звонить, думаю, знаете.
...
Рейтинг: 0 / 0
глобалы и net приложение
    #35782132
Фотография ceshka_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey MaslovОпять МедТрак кто-то ломает... Стоит ли ломиться в открытую дверь? Все там есть: и внутренний реляционный доступ, и ODBC-интерфейс, и многое другое, а также высококвалифицированный поставщик / саппортер на территории России :)
Призыв к коллегам: ребята, давайте жить дружно. Стоит ли помогать анонимам ломать продукты, поставляемые членами нашего совсем небольшого сообщества?
я только за, прежде чем изобретать велосипед, нужно посмотреть, может он уже есть
...
Рейтинг: 0 / 0
глобалы и net приложение
    #35782334
echo123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alexey Maslov,

если вы подскажете как это сделать буду только благодарен, потому что обращение в небезизвестную фирму привело только к одному результату, хамству в ответ на вопрос
...
Рейтинг: 0 / 0
глобалы и net приложение
    #35782365
echo123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alexey Maslov,

насчёт ODBC, как это может быть если к базам созданным для медтрака, в которых библиотека каше ассоциирована с FDBMS, через ODBC доступ получить можно только при наличии драйвера для FDBMS, учитывая что на нашем сервере доступ к этим базам через ODBC я не смог получить, то данный драйвер не стоит, тогда как МедТрак получает доступ через ODBC.
...
Рейтинг: 0 / 0
25 сообщений из 90, страница 2 из 4
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / глобалы и net приложение
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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