User Answers

Hi Luis-Ángel.

Generally, if you can connect successfully then configuration is fine.

Does this happen with every query? If you try some simple query, like 'select 1', will this work ?

If yes, does your query work from Management Portal ?

Also, try enabling Audit and event Protect and check if this event is logged into Audit when this happens.

Do you have DeepSee in license? Please provide output of

do $system.License.Decode()

Not the smallest, but shortest -- 42 characters. Based on Robert's answer.

x $zwunpack("⁦㵩㨱㨱〱‰㩷⍩㴳‰䘢穩≺眠椺㔣〽∠畂空•㩷␧⁸⁩⁷‡")

To get environment variable you can use $System.Util.GetEnviron().

And to get current folder -- $system.Process.CurrentDirectory().

Indeed, documentation [1] says that this is "Number of private global data blocks used by this process.". So this is due to process-private globals

You can inspect these global using ^GETPPGINFO utility [2]

Hi Nael

Not possible, as far as I know.

You can play with $stack. Something like this:

 set Result=$$MyFunc(1,.Out)
 write $stack($stack-1,"MCODE"),!
 set Param2="it's all good"
 quit 1

USER>d ^test
 set Result=$$MyFunc(1,.Out)

But here you are looking at parsing plain strings, and this is error-prone.

You should use Locate:

Set tRegEx = "<[^>]*>"
Set htmlSnippet = "<h1>Hello1</h1><h1>Hello2</h1>"
Set regex=##class(%Regex.Matcher).%New(tRegEx)
set regex.Text = htmlSnippet
while regex.Locate() {
    write "Found ",regex.Group," at position ",regex.Start,!

Also it's not possible to parse generic HTML with regular expressions ( Limited subset of HTML -- maybe.

Reason for "0.001005933" being string is not that it is less than 1, but that it's not in a canonical form.

That is -- it has integer zero before decimal point.

Put '+' before expression:

USER>Set MsgDT = "20180405000000001005933"

USER>Set MsgDTH = + $ZTH(($E(MsgDT,9,10)_":"_$E(MsgDT,11,12)_":"_$E(MsgDT,13,14)_"."_$E(MsgDT,15,23)),1)



Both Caché and InterSystems IRIS support ODBC. So you can connect to them from PHP via ODBC.