go to post Alexander Koblov · Jul 19, 2017 No. You need to wrap it as you showed in second example. You can use "C" alias from first sample only in "ORDER BY" clause in the same query, not in WHERE.
go to post Alexander Koblov · Jul 5, 2017 Kyle, please notice that indeed CALL %SYSTEM.SQL_TableExists('table name') shows nothing -- no result is returned. Whereas ?= CALL %SYSTEM.SQL_TableExists('table name') prints boolean result 1 or 0 depending on whether 'table name' exists.
go to post Alexander Koblov · Jul 4, 2017 FWIW I just checked 2015.1.4 and 2015.2 And IE 11.0.9600.18697 on Windows 7x86 And Color Selection Dialog is opened properly: /csp/samples/ZENDemo.Home.cls -> Components -> Popup Windows
go to post Alexander Koblov · Jul 4, 2017 Hi Jochen. If you have different modules in one namespace I suggest to you to have different Atelier projects for these modules. Then you can have one Git repository to handle all these projects. With such approach the repository has all the code for the namespace and the code is grouped by projects (modules) inside repository. Here you can find more details on how you can define Git repository for multiple projects. https://wiki.eclipse.org/EGit/User_Guide#Creating_a_Git_Repository_for_m... Regards, Alexander.
go to post Alexander Koblov · Jun 7, 2017 ']]' means 'Sorts After'. Indeed, as we can see A sorts after B. USER>kill USER>set A="1.0" USER>set B="2.2" USER>write A]]B 1 USER>set c(A) = 1, c(B) = 1 USER>zwrite c c(2.2)=1 c("1.0")=1
go to post Alexander Koblov · Jun 2, 2017 I'm not aware of such global setting. If you want to prevent legacy Caché ObjectScript application with direct global access to see not-committed data, then you need to implement proper locking in that application. Starting READ COMMITTED transaction in that process will not help as this does not affect the code that modifies globals directly.
go to post Alexander Koblov · Jun 1, 2017 Hi P. Check for $d(^Vehicle(unitNumber)) in your sample is not right -- process in transaction can always read data that it has changed. Starting transaction in READ COMMITTED mode means that this transaction cannot read data modified by other transactions but not commited yet (provided other transaction properly locks the data). It does not restricted other processes from reading data changed by this transaction, unless a) Other process also starts transaction in READ COMMITED mode OR b) Other process acquires the lock for the global node that is modified by current process. So, if legacy Caché ObjectScript code does not use locks you cannot prevent it from reading your uncommited data. If legacy Caché ObjectScript uses locks then you need acquire these locks before inserting the rows into Vehicle.* tables. Transaction isolation in Caché is implemented using locks. When you modify data using SQL or Object-access Caché acquire locks for you, unless you explicitely say not to do this. Please see following documentation for more information on locking and concurrency in globals, Objects and SQL "Locking and Concurrency control" http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=... "Modifying the Database" http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=... Hope this explains things a little more, Alexander.
go to post Alexander Koblov · May 25, 2017 Process monitor is useful tool in these cases (https://technet.microsoft.com/en-us/sysinternals/processmonitor.aspx). Process monitor shows directories where zlib1.dll is searched for. So you can check if zlib1.dll is searched in <cache-dir>\bin.
go to post Alexander Koblov · May 25, 2017 You can use <csp:class includes='...'> ? http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=...
go to post Alexander Koblov · Apr 6, 2017 For debugging purposes? CSP Gateway trace is good. Also, there are different verbose levels of CSP Gateway log. Particularly, notice v9 level. http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=...
go to post Alexander Koblov · Mar 15, 2017 I think you can construct pKey as $ListBuild of different values and parse them back in LoadForm. I don't think it's possible to add other parameters to LoadForm callback
go to post Alexander Koblov · Mar 10, 2017 At least please notice that Caché ObjectScript does not have operator precedence. Instead of if (c >= 128 && c <= 255) { you should write if (c >= 128) && (c <= 255) { the same with s:(c >= 128 && c <= 255) retval=$lg(map,(c-128))
go to post Alexander Koblov · Feb 6, 2017 Java binding is deprecated. http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=...
go to post Alexander Koblov · Feb 3, 2017 ^%SYS.MONLBL is a great tool for profiling: http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=...
go to post Alexander Koblov · Jan 31, 2017 First of all, this is bad sample of GROUP BY query, in my opinion: SELECT c1, c2 FROM table2 GROUP BY c1 You are grouping by c1, but also selecting c2. GROUP BY collects all rows with the same c1 into one row. Each group of row with the same c1 might have different values of c2. What particular value of c2 you want to get? Generally, if you query contains GROUP BY, SELECT should contain either expressions from GROUP BY, or aggregate functions. For example, following query is OK: SELECT c1, max(c2) FROM table2 GROUP BY c1 Having said all that, you might try to concatenate column1 and columnn2 SELECT column1, column2, column 3 FROM table WHERE column1 || '===' || columnn2 IN (SELECT c1 || '===' || c2 FROM table2 GROUP BY c1) ORDER BY column1 provided that values in these columns do not contain '===' Another possibility is: SELECT column1, column2, column 3 FROM table T1 WHERE EXISTS (SELECT 1 FROM table2 T2 WHERE T2.c1 = T1.column1 AND T2.c2 = T1.column2) ORDER BY column1 I think GROUP BY is not necessary in second case.
go to post Alexander Koblov · Jan 24, 2017 Hi Thomas. Supported platforms for 2017.1 (http://docs.intersystems.com/documentation/ISP/ISP-20171.pdf#ISP_platfor...) lists 'Ubuntu 16.04 LTS for x86-64*' as server platform, so maybe there should be separate kit for Ubuntu, not Suse one.
go to post Alexander Koblov · Jan 23, 2017 Hi Rich. If you open project in Atelier Explorer it's right below classes, routines and CSP files: http://docs.intersystems.com/atelier/latest/topic/com.intersys.eclipse.h... Conn605:USER in this particular sample
go to post Alexander Koblov · Jan 23, 2017 Try to open following URL in browser on the machine where the Atelier is installed: http://server:57772/api/atelier/ What does it return? Check in web applications settings that /api/atelier is enabled. Check in System Dashboard that you have enough license units. UPD: I modified URL to http://server:57772/api/atelier/
go to post Alexander Koblov · Jan 23, 2017 Hi Token. Yes, you need to specify expected namespace for tag CardData. Do you know what it should be? How do you generate this XML? Please provide small code sample. Do you have XML schema definition for CardData? If yes, please provide it.
go to post Alexander Koblov · Jan 23, 2017 Locale enuw has RAW translation table for reading from files. Some other locales, for example rusw, has UTF8 translation table. So when reading UTF8 in enuw locale you need to specify translation table explicitly. Or have locale with default file translation table UTF8.