Article Vitaliy Serdtsev · Jul 7, 2017 19m read

Quotes (1NF/2NF/3NF)ru:

Every row-and-column intersection contains exactly one value from the applicable domain (and nothing else). The same value can be atomic or non-atomic depending on the purpose of this value. For example, “4286” can be
  • atomic, if its denotes “a credit card’s PIN code” (if it’s broken down or reshuffled, it is of no use any longer)
  • non-atomic, if it’s just a “sequence of numbers” (the value still makes sense if broken down into several parts or reshuffled)

This article explores the standard methods of increasing the performance of SQL queries involving the following types of fields: string, date, simple list (in the $LB format), "list of <...>" and "array of <...>".

0
0 1218
Question Chris Sprague · Jul 4, 2017

Hello,

I'm currently exploring alternatives to CSP/services and ODBC/Sql Maps for access to Caché. I'm not seeing a library which would interest me, so am considering creating one myself.

Does 'CacheConnection' in C# use RPC of some sort, or a defined protocol to communicate with Caché, or does it do so over telnet with scripted commands? I would assume the former. If so, is this a publicly documented protocol that can be implemented by library developers?

Any guidance in this area would be appreciated.

9
0 898
Question wx fg · Jul 5, 2017

hi

    I restored one database on Server B with EXTSELCT^DBREST command from   backup file (this backup file is taken from Server A).  

When I execute select some rows from one table,  it return error like this, 

the same select sql can return correct data  in server A

But when I select other rows from same table on Server B, it return correct data.

Why? maybe the backup file corrupted?

Thanks

1
0 241
Question CM Wang · Jul 5, 2017

"SELECT  %SYSTEM.SQL_TableExists('table name') "could work as expected under SQL shell,

but for   "CALL %SYSTEM.SQL_TableExists('table name')" does not work (not any error reported, it just show nothing).

Is there any reason why CALL could not be applied to a stored procedure?

Thanks.

7
0 584
Article Stephen De Gabrielle · Jul 5, 2017 2m read

I needed to pass through a file with Ensemble but the operation wasn't writing some filenames as given because the  EnsLib.File.PassthroughOperation 'sanitizes' filenames removing characters that are not valid on some operating
systems;
09000655_AEDC_C3344059_A&#47;E_Martin Browne_09000655_201706221018.pdf
09000655_AEDC_C3344059_A#47E_Martin_Browne_09000655_201706221018.pdf

Oh No! It has stripped out my semicolon and ampersand! I need them!

0
0 1258
Question Jochen Roese · Jul 4, 2017

Hi,

we are trying to use Atelier and GitLab for our Software-development. Our Software has round about 1000 classes that got developed over years.

What we want to achieve is that one repository holding the complete code of one namespace. We also want to create branches to develop new small parts.

The main problem is that Atelier don't have the project view like in Studio where you can add/remove code and have an overview  of the project. It's like viewing the Namespace-Tab in Studio.  The complete source is always present in Atelier.

4
0 958
Question Svetlana Ilina · Nov 28, 2016

Hello. I am a student from Syktyvakar Forest Institute(Russia). 

I need to make Research : "Databases for working with spatial data
Consider MySQL, PostgreSQL and 1 to choose from". I want to explore Cache with subject library of spatial data.

Help.

Does Someone from the developers write the libraries of spatial data?

3
0 471
Article Maks Atygaev · Dec 11, 2016 4m read

Caché offers a number of methods for going through a collection and doing something with its elements. The easiest method uses a while-loop and lets you fulfill the task in an imperative manner. The developer needs to take care of the iterator, jumping to the next element and checking if the loop is within the collection.


 But is it really what a developer should be concerned with?

18
1 1918
Question JAQUELINE KRIEGER · Jul 3, 2017

Hi everybody, 

I have to create a pivot that shows the result comparing the last week of the current date with the last week of the last year in the same month. I tried using the function LAG, but didn´t work.  Works only if I want to compare the months between the two years.  If someone has some idea, i will appreciatte a lot. 

Thanks.

Jaqueline Krieger

4
0 403
Question Marek Bernád · Jul 3, 2017

Good day, I have this issue. I have global like: ^myglobal(varX) = $LB(var1,var2). I need to delete all globals that have variable var1 in that list same without a need to iterate through all globals and checking their value.

Exact example:

- in database exist following:

^myglobal("Marek") = $LB("code2",1400)
^myglobal("Ondrej") = $LB("code1",12)
^myglobal("Nikita") = $LB("code2",32)
^myglobal("Evgeny") = $LB("code1",76)
^myglobal("Maks") = $LB("code2",99)
^myglobal("Eduard") = $LB("code1",14)
Now! How to delete all globals that have in list in the first place value "code2" please?

3
0 1317
Discussion Mike Kadow · Jul 3, 2017

I know this may sound like sour grapes, but really it is not.

I hear all the exciting things about the up coming InterSystems Conference, and I am sure it is.

But it is way, way out of my price range, and I am sure out of the price range of most of the Cache/MUMPS developers, without company backing.

Just wondering what others think.

4
0 584
Question Marek Bernád · Jul 3, 2017

Good day, I would like to find out the size of Caché ObjectScript variable in order to guarantee that my program will not leak, equally in terminal and Caché globals.  For example how huge number I can store in that variable ? And what happen in Caché when variable will leak ? How is this behavior treated? (how much memory is reserved for common variable?)

Thanks  in advance for your answers.

2
0 760
Question Alexander Koblov · Feb 5, 2016

Hi.

It is easy to receive JSON representation or dynamic Array from %ListOfDataTypes:

set l=##class(%ListOfDataTypes).%New()
do l.Insert("a")
do l.Insert("b")
do l.Insert("c")

set arrStr=l.$toJSON()
zwrite arrStr
set arr=l.$compose([])
zwrite arr

How to make backward conversion? How to receive %ListOfDataTypes from dynamic Array an JSON string?

I've tried

SAMPLES>set list = ##class(%ListOfDataTypes).$fromJSON("[""a"",""b"",""c""]")

%FromObject+21^%Library.RegisteredObject.1 *%Exception.General Compose Compose %FromObject Unable to map from %Library.Array instance to %Library.
3
0 1533
Question Nora Hutchison · Jun 29, 2017

Hi, we are trying to deployed a changed schedule to our DEV instance (from our TST).  And are getting an error:

SingleFailure: Error during import ERROR <Ens>ErrException: <COMMAND>zImportStream+13^Ens.Util.SettingsDocument.1 -- logged as '-' number - @' tcommit' > ERROR #6315: Errors reporting importing XML subelement in file '/xxx/deploy/Lee-Test.xml' at line '12' offset '40', skipping this item.
RequiresManualIntervention: Manual intervention required: Error during import ERROR <Ens>ErrException: <COMMAND>zImportStream+13^Ens.Util.SettingsDocument.
6
0 500
Question Stuart Byrne · Jun 29, 2017

Dear All,

I would like to block ADT_A18 and ADT_A47 HL7 2.3 messages with an empty MRG:1 field.

This is to prevent my current HL7 ADT router (Business process) sending blank Merges downstream.

I've attempted to create a business rule where this would return out the business role process.  However the messages still loop though the other rules.

Any advice would be great.

Kind Regards

Stuart

6
0 903
Question PILAR GUERRERO · Jun 29, 2017

Hello...

I need to convert a array  (JSON) in a List Of String. I think, there is some method that does it directly.

Something like that:

SAMPLES>set list = ##class(%ListOfDataTypes).$fromJSON("[""a"",""b"",""c""]")

%FromObject+21^%Library.RegisteredObject.1 *%Exception.General Compose Compose %FromObject Unable to map frm %Library.Array instance to %Library.ListOfDataTypes

I have reading about this but I don't found some trick to help me.

https://community.intersystems.com/post/how-convert-json-listofdatatypes

Thanks!!

1
0 649
Question Eduard Lebedyuk · Jun 26, 2017

I have a class with text property, which contains html text (usually pieces, so it may be invalid), here's a sample value:

<div moreinfo="none">Word1 Word2</div><br>
<a href = "123" >Word3</a>

When I add iFind index on text, there are at least two problems:

  • Words like moreinfo="none">Word1, so exact match with Word1 returns nothing
  • Irrelevant results for href search

How can I pass plaintext into iFnd index?

4
0 560