Try the following:

  1. enable "Retain cached query source" as described above
  2. compile your class/project with addition flags "k /compileembedded=1" (see Validating Embedded SQL Code)
  3. open the code of the generated program from the Studio or System Portal like %sqlcq.[YOURNAMESPACE].xETs3uMe2Ehn2LY5inuZiK4xgwnS.1.int
  4. Note: at the same time, do not forget to specify checkbox for system items

  5. Profit!
  1. stop IRIS
  2. close IRIS Launcher (aka Cube)
  3. open regedit (run as Administrator)
  4. rename instance name (let's say "ABC")
    1. [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Intersystems\IRIS\Configurations\ABC]
    2. [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Intersystems\IRIS\Configurations\ABC\Manager\PreferredServer] @="ABC"
  5. run IRIS Launcher (aka Cube) and rename server names. If you want, you can also do this through the registry:
    1. [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Intersystems\CACHE\Servers\ABC]
    2. [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Intersystems\CACHE\Servers] "DefaultServer"="ABC"
  6. start IRIS
  7. Profit! Now the instance name is ABC.

It's okay, I already have a minus.
It looks like this is my last comment here.

UPD:

  w $$Iso8601ToTimeStamp("2021-10-22T08:00:00+0900"),!
  w $$Iso8601ToTimeStamp("2021-11-04T11:10:00+0100"),!
  w $$Iso8601ToTimeStamp("2021-11-04T11:10:00+0200"),!
  w $$Iso8601ToTimeStamp("2021-11-04T11:10:00-0140"),!

Iso8601ToTimeStamp(ts) {
  r=##class(%TimeStamp).XSDToLogical($e(ts,1,22)_":"_$e(ts,*-1,*))
  r," => "
  q $zdth(r,3)
 }

Output:

USER>do ^test
2021-10-21 23:00:00 => 66038,82800
2021-11-04 10:10:00 => 66052,36600
2021-11-04 09:10:00 => 66052,33000
2021-11-04 12:50:00 => 66052,46200

Try Built-in Modal Groups

E.g.:

Class dc.test Extends %ZEN.Component.page
{

XData Contents [ XMLNamespace "http://www.intersystems.com/zen" ]
{
<page xmlns="http://www.intersystems.com/zen">
  <tablePane id="tp" sql="select 1 id, '2021-11-03' DT union select 2, '2022-01-24'">
    <column colName="id"/>
    <column colName="DT" link="javascript:zenPage.modalGroupCalendar('#(%query.DT)#');"/>
  </tablePane>
</page>
}

ClientMethod modalGroupCalendar(val) [ Language = javascript ]
{
  var group zenPage.createComponent('modalGroup');
  group.setProperty('onaction','zenPage.calendarAction(group);');
  group.show('Select a date:','calendar',val);
}

ClientMethod calendarAction(group) [ Language = javascript ]
{
  alert("You selected: " group.getValue());
  // SaveOnServer(); !
}

}

Try this:

Class dc.test Extends %ZEN.Component.page
{

XData Contents [ XMLNamespace "http://www.intersystems.com/zen" ]
{
<page xmlns="http://www.intersystems.com/zen">
  <tablePane id="tp" sql="select 1 id, 'a' FollowUp union select 2,'b'">
    <column colName="id"/>
    <column colName="FollowUp" header="FollowUp Comments" width="9%" style="text-align:left;" OnDrawCell="txtFollowUp"/>
  </tablePane>
</page>
}

Method txtFollowUp(
  pTable As %ZEN.Component.tablePane,
  pName As %String,
  pSeed As %StringAs %Status
{
    &html<<textarea name="followup" rows="3" style=" width: 95%;" onchange="zenPage.saveFollowUp(this.value,#(%query("id"))#);">#(%query(pName))#</textarea>>
    Quit $$$OK
}

ClientMethod saveFollowUp(
  val,
  id) [ Language = javascript ]
{
  zenAlert(val,' <-> ',id);
}

}

Those experienced with encryption systems for databases may have concerns about encryption having dire effects on performance, but, with Caché, these concerns are unfounded. Encryption and decryption have been optimized, and their effects are both deterministic and small for any Caché platform; in fact, there is no added time at all for writing to the database.

Managed Key Encryption: Protecting Data on Disk

InterSystems recommends using its encryption management tools:

  • When built-in hardware instructions are available for encryption-related activities, these activities are considerably faster then when using software-based encryption. The encryption management tools use hardware instructions when they are available.
  • The encryption management tools can use keys stored on a KMIP server.
  • The encryption management tools can run in FIPS mode.

About Encryption Management Operations

High-Performance Encryption for Databases in Financial Services (PDF)

COS:

Class dc.DPasarela Extends %RegisteredObject
{

Property STREAM As %Stream.TmpBinary;

Method PostMsg()
{
  s=$tr($j("",$$$MaxStringLength)," ",$c(0))

  i=1:1:5 ..STREAM.Write(s)
}

}

C#

IRISObject STREAM;
MemoryStream stream = new MemoryStream();
string len1, len2;
 
IRISObject pasarela = (IRISObject)iris.ClassMethodObject("dc.DPasarela""%New");
 
pasarela.InvokeVoid("PostMsg");
 
STREAM = (IRISObject) pasarela.Get("STREAM");
 
while (!Convert.ToBoolean(STREAM.GetBool("AtEnd")))
{
    stream.Write(STREAM.InvokeBytes("Read"3641144),03641144);
}
 
len1 = STREAM.GetString("Size"); // 18205720 (3641144*5)
len2 = stream.Length.ToString(); // 18205720 (3641144*5)
 
// =========== AGAIN ===========
 
STREAM.InvokeVoid("MoveToEnd");
 
pasarela.InvokeVoid("PostMsg");
 
stream.SetLength(0);
 
while (!Convert.ToBoolean(STREAM.GetBool("AtEnd")))
{
    stream.Write(STREAM.InvokeBytes("Read"3641144)03641144);
}
 
len1 = STREAM.GetString("Size"); // 36411440 (18205720*2)
len2 = stream.Length.ToString(); // 36411440 (18205720*2)
 
byte[] bytesS = stream.ToArray();

See %SQL.StatementResult:%DisplayFormatted()

Simple sample (for namespace "SAMPLES"):

set st ##class(%SQL.Statement).%New(2,"Sample")
set sql = 3
set sql(1) = "select TOP 5 %ID as id, Name, DOB, Home_State"
set sql(2) = "from Person where Age > 40"
set sql(3) = "order by 2"
do st.%Prepare(.sql)
for type="txt","pdf","csv","html","xml" {
  set rs st.%Execute()
  do rs.%DisplayFormatted(type,"C:\Temp\report")
}

As a result, the following files are generated:

report.csv
report.html
report.pdf
report.txt
report.xml
 
An example without complex formulas and very fast