go to post Robert Cemper · Oct 25, 2017 ECP always acts as Master/Slave relation.Server 2 holds the "FROM" DB as ECP master while Server1 pulls it down as ECP client.So from logic Server2 just can "reply" to requests from Server1.Though I'm not sure how a firewall in between has to be configured.
go to post Robert Cemper · Oct 25, 2017 Assumimg you have both DB on the same instance but different namespaces "FROM" and "TO" You may run a loop like this set id="" for cnt=1:1 { set id=$ORDER(^|"FROM"|Data(""),1,value) quit:id="" set ^|"TO"|Data(id+10000000)=value) if cnt#100000 write cnt,?10,id,! } For the connections of the host you may use ECP For a more structured global you might need to use $QUERY() The write is just to see progress
go to post Robert Cemper · Oct 22, 2017 It might be tricky to feed PARAMETERS that are accepted by class compiler.
go to post Robert Cemper · Oct 22, 2017 You may define properties by writing to ##class(%Dictionary.PropertyDefinition)as part of a ##class(%Dictionary.ClassDefinition) http://docs.intersystems.com/latest/csp/documatic/%25CSP.Documatic.cls?P...Parameters is then defined as array of %CacheString; And you set it just as any other array. [SetAt() ..... ]and then compile the class to use that property inside the class This is nothing you may do on the fly.
go to post Robert Cemper · Oct 22, 2017 YES it is !Class %DeepSee.ResultSet has a method %CancelQuery that does the trick.http://docs.intersystems.com/latest/csp/documatic/%25CSP.Documatic.cls?P...http://docs.intersystems.com/latest/csp/documatic/%25CSP.Documatic.cls?P...Chapter Using the Result Set API tells you some more details.http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=...especially:If you used %ExecuteAsynch(), periodically check to see whether the query has completed. If the query uses any plug-ins, make sure that any pending results are also complete; pending results are the results from the plug-ins, which are executed separately from the query.To determine the status of the query, call the %GetStatus() method of your instance. Or call the %GetQueryStatus() class method of %DeepSee.ResultSet. These methods return the status of the query and also (separately) the status of any pending results; see the class documentation for details.Optionally, to cancel a query that has not yet completed, call the %CancelQuery() class method.A practical example is seen in ##class( %DeepSee.UI.Analyzer). onunloadHandler()
go to post Robert Cemper · Oct 19, 2017 Changing IDKey to %Integer is not enough for Bitmap IndexingYou also have to set MINVAL =1 to prevent 0 or negative integers !
go to post Robert Cemper · Oct 19, 2017 Hi Scott,analyzing ##class( EnsLib.SQL.Common).ExecuteProcedureParmArray(.....)I think you should be able to provide a prepared Snapshot to set the required parameters.At least $$$sysTRACE("Using initialized SnapShot "_(tNumRS+1)) points in this directionSo your code might look like this:Set SelectPER355MC=##class(%ListOfObjects).%New() Set preset=##class(EnsLib.SQL.Snapshot).%New()Set preset.MaxRowsToGet=12000do SelectPER355MC.SetAt(preset,1)set tSC = ..Adapter.ExecuteProcedureParmArray(.SelectPER355MC,.output,SPQuery,"oi",.parm)I have no environment to check the approach.So it's up to you to verify it.
go to post Robert Cemper · Oct 18, 2017 I'm sorry.I'm not aware of ANY documentation on required privileges by any Query.I understand quite well your intention but especially <Protect> is hard to trap double hard inside a Class QueryWith privileged app you limit the scope and get control over access parameters.
go to post Robert Cemper · Oct 17, 2017 up to now I would do it:SELECT Name,Home_Street FROM Sample.Person ORDER BY +Home_StreetWhere's the improvement ? I see no difference.
go to post Robert Cemper · Oct 16, 2017 ERROR 5540 - User "UnknownUser" is not privileged for the operation.This tells me that you don't login with a managed user with enough privileges.So you could have a dedicated user just for this purpose.ORgive "Unknown User" enough rightsORmake use of a Privileged Application to assign temporary required Resources (my guess "%Developer") more on this and pp.http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.PortalHelpPag...
go to post Robert Cemper · Oct 16, 2017 Adding a recipient to your mail could could eventually improve your result significantlyIf no other part of your code does it. http://docs.intersystems.com/latest/csp/documatic/%25CSP.Documatic.cls?P...
go to post Robert Cemper · Oct 16, 2017 Alexey,You are totally right.Indirection just does a mimic of "address" while it's in fact the "name" of a variable or global.A kind of "symbolic addressing".
go to post Robert Cemper · Oct 10, 2017 I used this rule of thumb:selectivity > 8 % candidate for bitmap indexselectivity < 2 % normal indexin between it's a mater of investigation and other side conditions beyond selectivity
go to post Robert Cemper · Oct 9, 2017 Olga,You made my day.It's really easy to follow and helps much more then the "short cutted" version.I wish I had 5 votes.
go to post Robert Cemper · Oct 3, 2017 I'd recommend Java as you are platform independent then.Atelier + Eclipse are just another goody for developers
go to post Robert Cemper · Sep 30, 2017 Hi Ken,There is an easier way.Instead of fiddling around with unpredictable params you just pass your whole symbol table = local variablesto your background job like this and use what you need in backgroundJOB ##class(%SYSTEM.OBJ.FM2Class).All():(:1):5look for process-params + switch herehttp://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=...
go to post Robert Cemper · Sep 30, 2017 Evgeny, in SQL you have a CASE ... END block for selection http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=... CASE WHEN search_condition THEN value_expression [ WHEN search_condition THEN value_expression ... ] [ ELSE value_expression ] END CASE value_expression WHEN value_expression THEN value_expression [ WHEN value_expression THEN value_expression ... ] [ ELSE value_expression ] END
go to post Robert Cemper · Sep 29, 2017 That's fine and nothing new.You missed my point:With the Class Query it's not self explaining if params got to Prepare() or to Execute()http://docs.intersystems.com/latest/csp/documatic/%25CSP.Documatic.cls?P...I just learned from John Murray a few comments abovePrepare() is for dynamic SQL, but in your case it's a class query you want to run.So change your rs.Prepare call to be an rs.Execute one.that you don't need a prepare with a Class Query.I wasn't aware of that until a few hours ago.Then it's obvious that any param has to go to Execute().