go to post Dmitry Maslennikov · Nov 7, 2017 Even Eclipse itself offers the same way to upgrade platform. If you want to upgrade Eclipse to the newest version, you should change the link, and after that upgrade will be possible.
go to post Dmitry Maslennikov · Nov 6, 2017 I think it mostly depends on your task, how strongly you should care about duplications.And I think that SHA1 should be enough
go to post Dmitry Maslennikov · Nov 6, 2017 Documentation now looks quite pure about Atelier. As far as I know, Studio does lock for any files which in edit mode, not just opened but after some changes. While Atelier does not. When you save the file in Studio, it does not care what did you have before it just overrides. When Atelier checks if server's version was changed it offers to compare and choose what should be stored on server.
go to post Dmitry Maslennikov · Nov 6, 2017 Or just add calculated indexable property with hash to this string, and use this property in SQL
go to post Dmitry Maslennikov · Nov 6, 2017 Yep, right, looks like Index can't help here and problem not only 511(and this length could be different on different strings).But, you still can use Index but you should set length which should be stored. But find duplicates you can do without SQL, just by reading this index, it should be much faster, to find, all duplicates by indexed value, and then you can compare real values.
go to post Dmitry Maslennikov · Nov 6, 2017 For best performance, you need index on this property. And request something like this. SELECT Home_City,list(ID) ids FROM sample.person GROUP BY Home_City HAVING count(*)>1 And result will be something like this
go to post Dmitry Maslennikov · Nov 3, 2017 It has private access for now, and available only for you, yet.
go to post Dmitry Maslennikov · Nov 3, 2017 Danny, Thanks, It's amazing, to see such articles. But how about coding style. If to be honest, your code looks like a mess of old-school code and modern. As this articles mostly for beginners, it would be much better to have also modern style. Instead of OPEN/USE/READ use %Stream classes. I see this way as much readable. And about how you use standalone ELSE command without brackets, not sure that beginners, can quickly get the trick here. Open file:"R":1 Else Use 0 Write "Could not open file ",file Quit
go to post Dmitry Maslennikov · Nov 3, 2017 You can remove saved password from windows registryrun regedit.open path HKEY_CURRENT_USER\Software\InterSystems\Cache\Servers\choose serverremove Server Password
go to post Dmitry Maslennikov · Nov 2, 2017 The same issue, just updated to latest beta version. Windows 10 x64, java version "1.8.0_152"
go to post Dmitry Maslennikov · Nov 1, 2017 I would recommend instead of mark such object as deleted, with such flag like this. Just "move" it to another table some kind of Trash, when you can store this object as a serialized string for example. In this case object will really disappear from his table and will not be availble with via SQL or any other accesses. But in this Trash, you can have information about deletion data, who deleted and information to restore it.
go to post Dmitry Maslennikov · Oct 27, 2017 To have a possibility to edit files, you have to create a project, and copy existed classes to this project.You can look at this youtube playlist, to get more information about working with Atelier.
go to post Dmitry Maslennikov · Oct 18, 2017 Why you have two different ways to create objects?If you have class, you should use object or SQL way to create or change objects.If you add it manually through direct access to global, you should also create all indexes, this way.Instead of %BuildIndices, you can try to use method %FileIndices, with Object's id as a first argument.
go to post Dmitry Maslennikov · Oct 16, 2017 Could you add some code, which can explain more, what are you doing?
go to post Dmitry Maslennikov · Oct 16, 2017 It depends on, how long this string should be, and what do you expect to see there. The simplest way is just generating it with $random. set string="" set length=100 for i=1:1:length set string=string_$char($random(26)+97)
go to post Dmitry Maslennikov · Oct 15, 2017 Unfortunately, downloading distributions from WRC is not so easy. For example, you can look at my article Containerization Caché, where I gave an example how to download and install Caché automatically. Before, we need some variables product=cache version=2017.2.0.744.0 arch=lnxrhx64 Download distribution # WRC Authorization WRC_USERNAME="user@somecompany.com" WRC_PASSWORD="password" wget -qO /dev/null --keep-session-cookies --save-cookies /dev/stdout --post-data="UserName=$WRC_USERNAME&Password=$WRC_PASSWORD" 'https://login.intersystems.com/login/SSO.UI.Login.cls?referrer=https%253A//wrc.intersystems.com/wrc/login.csp' \ | wget -O - --load-cookies /dev/stdin "https://wrc.intersystems.com/wrc/WRC.StreamServer.cls?FILE=/wrc/distrib/$product-$version-$arch.tar.gz" \ | tar xvfzC - . before an upgrade, you should define at least one variable as defined in documentation by your link. ISC_PACKAGE_INSTANCENAME=$product for install new instance, you should define more variables ISC_PACKAGE_INSTALLDIR="/usr/cachesys/" ISC_PACKAGE_UNICODE="Y" so, finally, the script will be #!/bin/bash product=cache version=2017.2.0.744.0 arch=lnxrhx64 # WRC Authorization WRC_USERNAME="user@somecompany.com" WRC_PASSWORD="password" wget -qO /dev/null --keep-session-cookies --save-cookies /dev/stdout --post-data="UserName=$WRC_USERNAME&Password=$WRC_PASSWORD" 'https://login.intersystems.com/login/SSO.UI.Login.cls?referrer=https%253A//wrc.intersystems.com/wrc/login.csp' \ | wget -O - --load-cookies /dev/stdin "https://wrc.intersystems.com/wrc/WRC.StreamServer.cls?FILE=/wrc/distrib/$product-$version-$arch.tar.gz" \ | tar xvfzC - . ISC_PACKAGE_INSTANCENAME=$product /tmp/dsitrib/$product-$version-$arch/cinstall_silent But it is just a simple example and not covers everything. But can be easily extended by your needs.
go to post Dmitry Maslennikov · Oct 15, 2017 Almost the same as you do on Windows, or as clean install. Just call ./cinstall And installer will offer to choose instance name, and if you put the same will offer to upgrade it.
go to post Dmitry Maslennikov · Sep 28, 2017 {value1,value2, value3} - is incorrect in JSON In JSON we have objects and arrays, every element in an object has name and value, while an array is a just list of values. So, object in this format. { "name": "value", "name2": "value2" } And array [ "value1", "value2" ] And anyway not sure what you want to do. Look at this article in the documentation about working with JSON in Caché. set arr = ["value1", "value2", "value3"] set iter = arr.%GetIterator() write !,"<switch> my value" while iter.%GetNext(.key, .value) { w !,"<case>",value,"</case>" } w !,"</switch>"