and for Linux:
(don't have a Caché installation at hands) but CPIPE should do it
Linux anyServer 4.15.0-38-generic #41-Ubuntu SMP Wed Oct 10 10:59:38 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
rcemper@ubuntu:~$
- Log in to post comments
and for Linux:
(don't have a Caché installation at hands) but CPIPE should do it
something fast for WINDOWS
from terminal and get a long printout.
If you just look for a specific line you could run the command using CPIPE and read it line by line until you get your info
details on CPIPE here: Execute Server Commands from Caché / Ensemble / IRIS
For Linux/Unix I don't have that at hands
I oppose:
- all text coloring, fonts sizes help to express the importance of text.
- text from right to left is only useful for Hebrew or Arabic writing: not my world
- special characters help a lot if you don't have them on your keyboard ¿isn't it ? my 2 ¢
- what's bad with smileys? ![]()
I do spell checking with Grammarly. the embedded only confused me.
Source could need an improvement to wrap the text in the window. The single line display is cumbersome.
If you want to do the check immedeatly at start of Enseble you can use Routine %ZSTART in Namespace %SYS
if it is at start of a production you can use Ens.Director class
To separate physical storage from applications you may do this inside Caché using ECP
As stated in the 2nd paragraph:
Unlike the standard .NET binding, the eXTreme APIs do not use TCP/IP to communicate with Caché.
Instead, they use a fast in-memory connection
So by definition, it can't be on a different server. It acts like COS but in the .NET based language of your choice.
Still another approach using your original "solution" in PHP following the idea of a Micro-Service.
Instead of a mimic of what PHP might do I use it directly for this purpose.
That way more sophisticated functionalities that can be used without recoding.
I extended your test to include doubled double quotes
*
and here the code:
GREAT !
all well-documented code!
no (dirty) Harry_Potter_Coding !
I was sure you know it
The Unix/Linux world often uses LF := $C(10) as line terminator
while in Win (and VMS) world CRLF := $C(C13,10) is a default.
So you depend on the source system providing the data.
Suggested approach: use LF as the (common) line terminator and just drop $C(13) or 
 from your input record by
$replace($translate(record,$c(13)),"
","")
Before any other processing.
OK, this handles double quotes. But only INSIDE a quoted string
-
HTH
you are right. I didn't think on empty parts and doubled double quotes ![]()
which I never met from CSV.
next level exercise
I discourage since years the use of $ZU(...) functions as they aren't documented since 2010.
I recently had to dig back to 2009 for just a weak hint what might happen.
It is even worse with all the internal stuff around %occ* and similar.
No docs. No guaranty of the life cycle. No (external) notice of eventual changes. Mostly as a deployed code.
If it is used inside a $system.* or part of a generated code that's OK. The responsibility is not at the user side.
Verifying those "specials" with every release change can be a very heavy exercise.
(just experiencing this on a system locked down to on an older version unable to migrate)
not being verbose in %occ* world I had this solution also allowing to change quoting
BTW.
It's an excellent test exercise for new COS programmers
I'll add it to my collection.
Thanks ![]()
Depending on where your output comes from you may try
SPOOL - the forgotten device
or
Execute Server Commands from Caché / Ensemble / IRIS
to get the output into a local variable or global
Congratulations! ![]()
![]()
![]()
In past, we had a similar event in Austria named "Tech Talk" that formed a national user community over time.
I wish you a lot of success,
Robert
? probably the WRONG FORUM ? ![]()
$EXTRACT("0000"_val,*-3,*)OK. for some reason the most important part of the link was truncated.
I hope it doesn't hide again.
The basic mistake happens here the definition of Request
https://docs.intersystems.com/latest/csp/documatic/%25CSP.Documatic.cls?PAGE=CLASS&LIBRARY=%25SYS&CLASSNAME=%25CSP.Request
.png)
And you are right. %CSP.Stream has no Read method because ContentType tells you the true object .
As in the example:
.png)
It could have been %CSP.CharacterStream as well.
Both extend over some steps %GlobalStreamAdaptor which have all the READ, WRITE, ....methods
Just reading docs and not checking inherited methods (e.g. in Studio) is mostly misleading.
eventually, EMS might do it.
I've just never seen it in action.
Just adding CACHESYS to mirror could be a deadly exercise
Who then is primary? Me or my Mirror?
But to achieve your goal you may have an additional DB. Let's name it SYSMIRROR
And now you use global / subscript level mapping to place the common information there.
e.g. ^SYS("Security") or parts of it ("RolesD","UsersD", ..) whatever you think you need.
I never tried it but it could not see a contradiction.
For better synchronization and uniqueness, I'd personally prefer to have this SYSMIRROR accessed over ECP while holding a local copy of SYSMIRROR for backup / failover
YES it is possible.
- see your sub_query first working
- just custom_view seems to miss the typical dot in table and view names
Views are just a kind of shortcut to a query formula.
in namespace SAMPLES you could do this
select Home_City, DOB, name,
(select Name from sample.personview sub where sub.DOB=main.DOB ) SubName
from Sample.Person main
The example doesn't make much sense but it shows that this works
Anyhow, why don't you just use a JOIN like this?
select Home_City,main.DOB, main.name, sub.name
from Sample.Person main
left outer join sample.personview sub onsub.DOB=main.DOB
or in your case
select MsgId, FileName, ReportName
from main_table LEFT OUTER JOIN custom_view
ON MsgId = ReportId
Again: both table name and view name look odd to me
Thanks, Evgeny:
Old eyes are hard on tiny things. ![]()
Hi Sean,
somewhat likely, using indirection instead of eXecute ![]()
set %ref="obj."_prop,key="" for set key=$order(@%ref@(key),1,val) quit:key="" write key,?5,val,!
USER>s x="Керимбай Нурия"
USER> w ##class(%CSP.Page).UnescapeHTML(x)
Керимбай Нурия
Did you try this
https://stackoverflow.com/questions/38951794/javascript-string-encoding-windows-1250-to-utf8
It would be useful to have a wider context of your problem.
invalid OREF may have many reasons and it's not obvious how this relates to your initial problem
if you do it in object Script you just missed the concatenation operators (Underscore) _
""""_tect_""""
In SQL you do SELECT '"'||field||'"' ....
String delimiter in SQL are single quotes ' String concatenator is || Double pipe
Brendan,
I share your concerns. The initial request didn't mention Fileman at all.
This is just a hint how a construct like this could be opened to SQL access.
I've seen so many old MUMPS code that would have never taken its way to objects without.
It#s clear that this requires wise use and careful handling.