go to post Robert Cemper · Mar 8, 2021 I'm not sure what the first 2 bytes are but $ZCVT(anystring,"O","UTF8") should do the conversionand this works for strings up to ~3,6 MB with Long-String enabled in your installation for $ZCVT: https://docs.intersystems.com/iris20201/csp/docbook/DocBook.UI.Page.cls?KEY=RCOS_fzconvert
go to post Robert Cemper · Mar 8, 2021 in OEX there is a series of various Websocket Clients I produced:The internal is just available in IRIS.Half Externals (eg. CSP based, using JavaScript ) might fit also for Caché 2015 as for IRIScheck WebSocketClient CSP based
go to post Robert Cemper · Mar 8, 2021 You mention: web application configuration information, task plans, sql gateway, etcNamespace %SYS was always excluded from MIRROR since most of the information iseither static (SYSLIB) or server-specific (eg. journal)
go to post Robert Cemper · Mar 8, 2021 @Alexey MaslovI had a similar experience with "InPlace".This may work if your applications are as simple as in SAMPLES:[ "nome est omen" SAMPLES => Simple]Just a few $ZU() or other %z* stuff may break you, or file references containing *CACHE*.Or some $ZF() functions with c-binding, ....Therefore I designed my "2 worlds" approach using ECP as a data bridge: Using ECP across IRIS and Caché
go to post Robert Cemper · Mar 6, 2021 Definitions might be wrapped into some $$$macro that calls the .INT directly.Similar to some compiled class . Deployed classes provide more comfort.
go to post Robert Cemper · Mar 5, 2021 hi @Сергей Марушко it is done. Using ECP across IRIS and Caché
go to post Robert Cemper · Mar 5, 2021 if the deployment is sensitive distribution happens a pure *.OBJ
go to post Robert Cemper · Mar 5, 2021 example 1 can't work.WHERE Cidade = 'Cidade 1' AND Cidade = 'Cidade 2'it is 1 value or the other but not both (AND) at the same time
go to post Robert Cemper · Mar 5, 2021 Stay tuned! I'm almost done (most likely before Monday) with a demo of how you can make a soft transition.
go to post Robert Cemper · Mar 2, 2021 @11: 1:1 could be a degraded 1:N relationship orby inheriting from a base class as mentioned earlier: "Employee Extends Person" many-to-many can be covered as M:N relationship as I described in my article 3 years ago.
go to post Robert Cemper · Mar 2, 2021 @9.9. storage is generated once if not existing yet.you may change it manually (typically data location global) as long as there is nothing stored yetotherwise you lose the existing content. Or you copy it to the new location.My article The adopted Bitmap shows such an example [actually also in contest}
go to post Robert Cemper · Mar 1, 2021 6 & 7 are side effects of object inheritance.Think of a class Person.But Employee Extends PersonSimilar Students Extends Person tooSo you have 3 tables but all are Persons Some with extension some not. @6: Table Employee corresponds to class Person and to class Employee @7: So class person corresponds to Table PERSON, EMPLOYEE , STUDENT
go to post Robert Cemper · Feb 24, 2021 #20. Is slightly exaggeratedofficial docs present it differently.https://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=ITECHREF_json https://docs.intersystems.com/latest/csp/documatic/%25CSP.Documatic.cls?LIBRARY=%25SYS&CLASSNAME=%25Library.DynamicArray
go to post Robert Cemper · Feb 24, 2021 Depending on the environment you use embedded SQL the variable SQLCODE may not reach you. This is related to variable scoping. Therefore it is better to use any variant of Resultset.For variable scoping see my article here
go to post Robert Cemper · Feb 21, 2021 Nice! Only 666 characters in sequence. A mystic number I like it
go to post Robert Cemper · Feb 19, 2021 <CLASS DOES NOT EXIST>%Close...is typical if try to access resultset or just delete rset after leaving namespace %SYS.Just reproduced it. %SYS>w !,rset.%Next(),?5,rset.%Get("Directory"),!?30,rset.%Get("Size"),?40,rset.%Get("MaxSize") 1 c:\intersystems\iris\mgr\enslib\ 163 Unbegrenzt %SYS>ZN "USER" USER>k rset <CLASS DOES NOT EXIST>%CloseCursor+3^%SQL.ClassQueryResultSet.1 *SYS.Database USER>
go to post Robert Cemper · Feb 19, 2021 #1 there is no "SELECT LAST_SERIAL()" #2 depending what your expectation on LAST is I see 2 possible workarounds#2A LAST = max: "SELECT MAX(test_id) FROM test" #2B LAST = latest: "SELECT test_id, MAX(ID) FROM test GROUP BY 2" #2B is based on the fact that you always have an auto-incremented ID and it's a shortcut of"SELECT test_id FROM test where id = (SELECT max(ID) from junior.test)"or"SELECT TOP 1 test_id FROM test WHERE ID < 999999999999999999 ORDER BY ID DESC"