Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Caché Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3]      все
 Re: Улучшения, новые фичи в технологиях InterSystems  [new]
DAiMor
Member

Откуда: Brno, Czech Republic
Сообщений: 2273
Шваров Евгений
Коллеги, на самом деле смысл этой темы, чтобы ваши запросы превращались в WRC задачи, т.е. были решены и входили в продукт.

По части уже здесь предложенного либо есть либо будет создан продлог (задание на разработку).

Вопрос: как лучше всего по вашему мнению доносить эту информацию до вас? гуглотаблица? Специальный сайт? задания в редмайне?
Ваши предложения?
Самое простое, это наверно гуглотаблица. redmine наверно будет перебор, с учетом что наверно нужен анонимный доступ
6 ноя 15, 16:32    [18379679]     Ответить | Цитировать Сообщить модератору
 Re: Улучшения, новые фичи в технологиях InterSystems  [new]
DirksDR
Member

Откуда: Пермь
Сообщений: 305
Шваров Евгений,

Есть предложение расширить возможности оператора include.
Чтобы в код программы вставлялись не только inc-файлы, но и int и даже mac-файлы.
Подставлять содержимое int и mac файлов в код программы вместо оператора include.
Оператор include чтобы можно было писать в любом месте программы.

П.С.Был такой оператор в языке PL/1. Доказал свою пользу.
12 янв 16, 12:36    [18666327]     Ответить | Цитировать Сообщить модератору
 Re: Улучшения, новые фичи в технологиях InterSystems  [new]
DAiMor
Member

Откуда: Brno, Czech Republic
Сообщений: 2273
DirksDR
Шваров Евгений,

Есть предложение расширить возможности оператора include.
Чтобы в код программы вставлялись не только inc-файлы, но и int и даже mac-файлы.
Подставлять содержимое int и mac файлов в код программы вместо оператора include.
Оператор include чтобы можно было писать в любом месте программы.

П.С.Был такой оператор в языке PL/1. Доказал свою пользу.

а зачем это нужно, вставлять одни рутины в другие ?
если вы хотите чтобы у вас какие то функции всегда включались во всех программах, эти функции и пишите в INC файл, и тогда будет такой же результат.
12 янв 16, 12:54    [18666451]     Ответить | Цитировать Сообщить модератору
 Re: Улучшения, новые фичи в технологиях InterSystems  [new]
DAiMor
Member

Откуда: Brno, Czech Republic
Сообщений: 2273
DirksDR
Оператор include чтобы можно было писать в любом месте программы.
А в чем сейчас проблема с этим, сейчас можно и так вставить в любом месте главное, чтобы перед использованием макроса
если вы конечно не про классы говорите, но там то другая тема, и не понятно зачем это может быть нужно.
12 янв 16, 12:57    [18666477]     Ответить | Цитировать Сообщить модератору
 Re: Улучшения, новые фичи в технологиях InterSystems  [new]
DirksDR
Member

Откуда: Пермь
Сообщений: 305
DAiMor,

Простите, ребята!
Я думал, что нельзя, раз AlexKB многострочными макросами заморачивается:)
А проверить поленился...
Файл testinc.mac
testinc  ;
 
set msg="Hello include"
 
do logMsg(msg)
 
quit

 #include 
inctest
Файл testinc.int
testinc  ;
 
set msg="Hello include"
 
do logMsg(msg)
 
quit
logMsg(msg)  ;
  
new id,logFlag,username  
  
set logFlag=$get(OMSession("LoggingFlag"),0) quit:logFlag>0  
  
id=$i(^log) 
  
set username=$get(OMSession("username"),$username
  
^log(id)=msg_"|"_username_"|"_$zdt($zts,3,1)  
  
q  
logError(msg)  ;
  
new id,username    
  
id=$i(^logError)    
  
set username=$get(OMSession("username"),$username)    
  
^logError(id)=msg_"|"_username_"|"_$zdt($zts,3,1)_"|"_$zerror    
  q    
Это то, что я хотел.
14 янв 16, 16:18    [18679324]     Ответить | Цитировать Сообщить модератору
 Re: Улучшения, новые фичи в технологиях InterSystems  [new]
Alexey Maslov
Member

Откуда: СПб
Сообщений: 1349
В Портале управления нигде не отображается состояние самого Менеджера задач (по крайней мере, в версиях <= 2015.1). Он может быть [при]остановлен, но догадаться об этом бывает нелегко даже достаточно опытному админу, тем более что о существовании утилиты ^TASKMGR знают не все.

Предложение: отображать состояние Менеджера задач в Портале, разумно было бы и в Планировщике задач, и в Системных показателях.
20 янв 16, 17:53    [18707540]     Ответить | Цитировать Сообщить модератору
 Re: Улучшения, новые фичи в технологиях InterSystems  [new]
servit
Member

Откуда: г. Кишинёв, Республика Молдова
Сообщений: 3049
Блог
Alexey Maslov
Предложение: отображать состояние Менеджера задач в Портале, разумно было бы и в Планировщике задач, и в Системных показателях.
Обещали в одной из будущих версий сделать. Ориентировочно в 2017.3.
6 окт 16, 07:56    [19748880]     Ответить | Цитировать Сообщить модератору
 Re: Улучшения, новые фичи в технологиях InterSystems  [new]
Ptn
Guest
Пожалуйста, пожалуйста, пожалуйста!

Сделайте что-нибудь с пунктом [печать] в контекстном меню по классу из Студии

- Уберите вообще, есть Ctrl-P и меню Файл

- Уберите хотя бы подальше от пункта [Экспорт]

- По выбору хотя бы выдайте диалог, отправить на принтер или нет? Например тот же что и выходит по Ctrl-P

Ну адский ад же .... промахиваешься и все без вопросов улетает в тар-тарары

ЗЫ: Извините был напуган
17 ноя 16, 13:45    [19903517]     Ответить | Цитировать Сообщить модератору
 Re: Улучшения, новые фичи в технологиях InterSystems  [new]
alatalo
Member

Откуда:
Сообщений: 46
хочу новые ключи к компилятору COS чтобы хотя бы в явных случаях выдавал ошибки такой переменной/метода/свойства нет

К сообщению приложен файл. Размер - 28Kb
14 янв 17, 13:47    [20105346]     Ответить | Цитировать Сообщить модератору
 Re: Улучшения, новые фичи в технологиях InterSystems  [new]
servit
Member

Откуда: г. Кишинёв, Республика Молдова
Сообщений: 3049
Блог
alatalo
хочу новые ключи к компилятору COS чтобы хотя бы в явных случаях выдавал ошибки такой переменной/метода/свойства нет
Вряд ли это сделают, так как это не является ошибкой компиляции, поскольку необязательно приведёт к ошибке времени исполнения, ведь существует механизм динамической диспетчеризации методов и свойств (статья на хабре).
Скорее это должно быть предупреждением статического анализа, чтобы обратить внимание разработчика на потенциально возможную проблему. Но опять же, учитывая природу скриптового языка COS (методы-генераторы и т.д.) ...
16 янв 17, 11:26    [20109563]     Ответить | Цитировать Сообщить модератору
 Re: Улучшения, новые фичи в технологиях InterSystems  [new]
alatalo
Member

Откуда:
Сообщений: 46
servit,
я понимаю. Поэтому заказываю только опциональный настроки, которые можно для конкретного проекта сделать.
16 янв 17, 11:38    [20109669]     Ответить | Цитировать Сообщить модератору
 Re: Улучшения, новые фичи в технологиях InterSystems  [new]
Ваня_88
Guest
Добавьте пожалуйста атрибут spellcheck = false в <textarea> в SQL портале, чтобы FireFox красным цветом sql не подчеркивал.
Ну и сделать подсветку sql синтаксиса заодно)
20 фев 17, 22:28    [20231021]     Ответить | Цитировать Сообщить модератору
 Re: Улучшения, новые фичи в технологиях InterSystems  [new]
Ваня_88
Guest
И ещё... в окне портала (Редактировать роль) "Предоставить права доступа к таблице для MyRole" отображаются все схемы, даже схемы с классами, которые уже были добавлены для назначения привилегий. Неудобно, смотришь на несколько десятков схем и не видишь, в каких есть классы/таблицы, которые ты ещё не обработал.
27 фев 17, 01:51    [20245609]     Ответить | Цитировать Сообщить модератору
 Re: Улучшения, новые фичи в технологиях InterSystems  [new]
Блок А.Н.
Member

Откуда: Новосибирск
Сообщений: 3411
Есть старенькая проблема, о которой я говорил в wrc еще 2012 году, ее номер 774493.
Это потенциальная уязвимость, которая чревата нарушением структуры данных на прикладном уровне, связанная с изменением структуры данных класса (добавлением новых полей) и неперекомпиляции программ с запросами на обновление данных. В то время мы сошлись на том, что исправлять ее слишком сложно, это затронет много чего, и решать это правильно на организационном уровне, а на на уровне СУБД. Тем не менее, о проблеме я не забыл, и до сих пор мне кажется, что иметь такую поганенькую проблему для такой прекрасной СУБД нехорошо, поэтому попробую предложить ее решить через форум. Тем более, я почему-то уверен, что сложность ее решения преувеличена, а опасность все-таки довольно высокая.

Суть проблемы попробую изобразить на примере. Создадим простенький класс из двух полей:
Class Test.A Extends %Persistent
{

Property A1 As %String;

Property B1 As %String;

Storage Default
{
<Data name="ADefaultData">
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>A1</Value>
</Value>
<Value name="3">
<Value>B1</Value>
</Value>
</Data>
<DataLocation>^Test.AD</DataLocation>
<DefaultData>ADefaultData</DefaultData>
<IdLocation>^Test.AD</IdLocation>
<IndexLocation>^Test.AI</IndexLocation>
<StreamLocation>^Test.AS</StreamLocation>
<Type>%Library.CacheStorage</Type>
}

}


И две одинаковые программы test.mac и test2.mac с кодом из одной строчки
 &sql(insert into Test.A (A1,B1) values(10,20))

Скомпилируем эти программы и посмотрим их исходный код, он довольно прост:
  ;---&sql(insert into Test.A (A1,B1) values(10,20))
   ;--- ** SQL PUBLIC Variables: %ROWCOUNT, %ROWID, %msg, SQLCODE
 do %0Ao
 q
%0Ao try { n sqldata5d
 	if $zu(115,1)=1||('$TLEVEL&&($zu(115,1)=2)) { TSTART  s sqldata5d=1 }
 	n %i
 	s %i(2)=10,%i(3)=20
 	s %ROWID=##class(Test.A).%SQLInsert(.%i,$c(0,0,0,0,0,0,0),,,'$g(sqldata5d)),%ROWCOUNT='SQLCODE
 	if $zu(115,1)=1,$g(sqldata5d) { TCOMMIT:SQLCODE'<0  TROLLBACK:SQLCODE<0 1 }
 }
 catch { d SQLRunTimeError^%apiSQL($ze,.SQLCODE,.%msg) if $zu(115,1)=1,$g(sqldata5d) { TROLLBACK 1 } }
 quit  // From %0Ao


Добавим в наш класс одно поле A2 (имя важно!), класс после этого будет выглядеть так:

Class Test.A Extends %Persistent
{

Property A1 As %String;

Property B1 As %String;

Property A2 As %String;

Storage Default
{
<Data name="ADefaultData">
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>A1</Value>
</Value>
<Value name="3">
<Value>B1</Value>
</Value>
<Value name="4">
<Value>A2</Value>
</Value>
</Data>
<DataLocation>^Test.AD</DataLocation>
<DefaultData>ADefaultData</DefaultData>
<IdLocation>^Test.AD</IdLocation>
<IndexLocation>^Test.AI</IndexLocation>
<StreamLocation>^Test.AS</StreamLocation>
<Type>%Library.CacheStorage</Type>
}

}

И перекомпилируем только одну из них, ее int-код изменится:
  ;---&sql(insert into Test.A (A1,B1) values(10,20))
   ;--- ** SQL PUBLIC Variables: %ROWCOUNT, %ROWID, %msg, SQLCODE
 do %0Ao
 q
%0Ao try { n sqldata5d
 	if $zu(115,1)=1||('$TLEVEL&&($zu(115,1)=2)) { TSTART  s sqldata5d=1 }
 	n %i
 	s %i(2)=10,%i(4)=20
 	s %ROWID=##class(Test.A).%SQLInsert(.%i,$c(0,0,0,0,0,0,0),,,'$g(sqldata5d)),%ROWCOUNT='SQLCODE
 	if $zu(115,1)=1,$g(sqldata5d) { TCOMMIT:SQLCODE'<0  TROLLBACK:SQLCODE<0 1 }
 }
 catch { d SQLRunTimeError^%apiSQL($ze,.SQLCODE,.%msg) if $zu(115,1)=1,$g(sqldata5d) { TROLLBACK 1 } }
 quit  // From %0Ao


Что же изменилось у нас в int-программах? В аргументах для программы ##class(Test.A).%SQLInsert()
Раньше они собирались в переменную так:
s %i(2)=10,%i(3)=20
А после добавления так:
s %i(2)=10,%i(4)=20


Т.е. после добавления поля изменился порядок принимаемых данных в %SQLInsert, и неперекомпилированная программа вставит данные не в то поле. Более точно - аргументы сортируются по их имени (почему и было важно было название добавляемого свойства). Поэтому, поле A2 заняло место поля B1, а B1 сместилось дальше. Подобная же штука происходит и при компиляции запросов на одновление. Т.е. если вы на своей базе добавили незначительное, как вам кажется, поле и не перекомпилировали все классы и программы, которые изменяют строки таблицы, порожденной модифицированным классом , вы рискуете получить повреждение данных. Причем это не явная модификация структуры хранения (при этом разработчик должен отдавать себе отчет), а автоматическая.
Да, неправильно запросы на обновление делать где-то кроме основного класса, да, существует система связанной перекомпиляции, но тем не менее, ошибки возможны, так как не при любом изменении класса хочется перекомпилировать весь продуктовый сервер, а зависимости перекомпиляции не учитывают, например, те же программы.
2 мар 17, 09:54    [20256377]     Ответить | Цитировать Сообщить модератору
 Re: Улучшения, новые фичи в технологиях InterSystems  [new]
Блок А.Н.
Member

Откуда: Новосибирск
Сообщений: 3411
Блок А.Н.,

мне кажется, добавление переменных по их имени решило бы проблему.
например, так:
s %i("A1")=10,%i("B1")=20
2 мар 17, 09:58    [20256397]     Ответить | Цитировать Сообщить модератору
 Re: Улучшения, новые фичи в технологиях InterSystems  [new]
DAiMor
Member

Откуда: Brno, Czech Republic
Сообщений: 2273
Блок А.Н.,

Еще одна причина отказаться от embedded sql
2 мар 17, 10:59    [20256654]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3]      все
Все форумы / Caché Ответить