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
- Log in to post comments
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.
for pure object access, you have a getter and a setter method. no magic
if also want to use it for SQL
- you need SqlComputed code. This will also replace your (object)Getter.
- to set your local variable also by INSERT or UPDATE you need to add UPDATE and INSERT Trigger code.
example;
--
To anticipate critics:
Some people may say it's dirty coding. YES !! But it works.
Classes and its parts are objects of package %Dictionary
I guess you are looking for this
$system.OBJ.* holds all utilities for compilation, import, export, ...
Last parameter .args came only with 2017.1
for earlier versions you need to compose it into first argument.
as a first suggestion, I would create a setter and getter method for this property that handles DUZ(2) in both directions.
If you add any property by the wizard it shows you the exact naming of the methods.
this property then goes in the first position of the IDkey
be aware of ProcedureBlock to have always access to your DUZ(2) or name it %DUZ(2) as hack
Yes you can! but not directly!
All you need is a an Abstract Class with
Classmethods to read, set, kill Globals as you need either static with fixed names or Global references passed by params. As you like.
And if you add SqlProc to the method you can even use it over ODBC/JDBC.
as you write it " + id+ " is a constant string.
so what would you expect to change?
eventually, you rephrase the question and add also the programming language you try to use.
this seems to be an invalid syntax anyhow
Searching for Caché is not so effective but looking for Intersystems or ObjectScript may get better hit rates.
Amazon has some related books. Watch also for Mike Kadow.
You hit the point %Boolean s an excellent example it can be TRUE, FALSe or NULL
in Caché terms: 1, 0, ""
Your example ^CODE("TNO","BIO",291,"AKI")) is partially misleading in that sense that a global subscript can NEVER be ""
while the content of $LB() can be $LB(1,2,"",4) or $lb(1,2,,4) here you find your "undefined" again,
similar to NULL in SQL (which is a different story)
there is a major difference between 1) and 2)
1) is also true if you have SET ^CODE("TNO","BIO",291,"AKI"))=""
You could also use a Command Pipe (docs) and read directly from your OS using "../bin ccontrol list" or similar
You just do the usual OPEN + USE and READ whatever comes back.
Check performance log and activity on your ESX or whatever your VM is running on.
It looks like a performance problem of the virtual disk.
this information is stored in ^|"%SYS"|SYS("Security","ApplicationsD")
you could extract it by MERGE ^mySAVE=^|"%SYS"|SYS("Security","ApplicationsD")
and then do any export of the global
Thanks!
One headache less in the discussion about the "right" way to write code.
+a tiny piece for "creative freedom".
![]()
Procedureblock =1
means ALL local variables except call parameters and %variables move to stack
and return when you return from your method (=procedure)
see Summary on Local Variable Scoping for more
this memory operation is not free but nothing to get a headache upon