Robert Cemper · Jun 11, 2018 go to post

#1) thanks for the Reminder on  IRIS

#1) + #2) concentrate on finding. but that's not the key issues.

As an example: The problem becomes visible when you run   

SELECT TOP 10 ArtNr,DescDE FROM Dc.Article WHERE DescDE %Startswith 'BE' ORDER by DescDE 


The problem is to get control of ORDER which depends on global collation.

Example for German:
- With Standard collation, you sort A,B,C..,O,...,U,...Z,Ä,Ö,Ü...   (classic ANSI sort)
- With collation German3, you sort A,Ä,B,C,....O,Ö,....U,Ü,....Z 

It is mostly the handling of characters with diacritical signs.

Hungarian is my worst case with much more diacriticals AND groups of characters in total  44 "character" tokens

A Á B C Cs D Dz Dzs E É F G Gy H I Í J K L Ly M N Ny O Ó Ö Ő P Q R S Sz T Ty U Ú Ü Ű V W X Y Z Zs

If you do it correctly then Cx sorts before Cs and Gz should sort before Gy and so on.

Now for ORDER BY you typically get your default collation derived from NLS settings.

#3) custom index seems to offer the most promising features.

Robert Cemper · Jun 11, 2018 go to post

I will publish the actual workaround here later when there are other solutions or proposals
in order not to influence your creativity.
########################################################################

Robert Cemper · Jun 10, 2018 go to post

the only thing which i have done was installing some windows update

This was enough to confuse Eclipse.
Run Updates for Glassfish and/ or Eclipse inside Eclipse and the setup is updated. 

Robert Cemper · Jun 2, 2018 go to post

Clayton,
I agree with you, especially for fast inserting multi-server environments.
In "slow" environments there is less risk.
It depends on where you set your timestamp. 
So %OnBeforeSave might provide the smallest possible gap.
 
 

Robert Cemper · May 30, 2018 go to post

Fabian,

this is a conceptual issue. If there is no ACCEPTED answer it shows up as UNanswered.
- no further comment from my side - 
wink

while NO answer has really no ANSWER type reply

Robert Cemper · May 29, 2018 go to post

I was unsure if I counted all separators right.
but if you got it from Message Viewer it should be correct.

did you verify you really got the message in hands? eg, by a TRACE or similar ?

Robert Cemper · May 29, 2018 go to post

Assuming your separators are |~^&
and if I counted correctly than FT1:16.... is empty but FT1:17.4.2   is   06CL

Robert Cemper · May 25, 2018 go to post

You are right!  This may work only in special situations.

I reproduced your case simplified.

SQL inbound adapter keeps a list of processed ids:
if your id is in there it is skipped. Could be there is some other trick but not as in docs. 

the list looks like this

ENSDEMO>zw ^Ens.AppData("SQLservice")
^Ens.AppData("SQLservice","adapter.sqlparam","%LastKey")=198
^Ens.AppData("SQLservice","adapter.sqlrow",196)=1
^Ens.AppData("SQLservice","adapter.sqlrow",197)=1
^Ens.AppData("SQLservice","adapter.sqlrow",198)=1
^Ens.AppData("SQLservice","adapter.sqlrow",199)=1
^Ens.AppData("SQLservice","adapter.sqlrow",200)=1
^Ens.AppData("SQLservice","adapter.sqlrow",201)=1
^Ens.AppData("SQLservice","adapter.sqlrow",202)=1
^Ens.AppData("SQLservice","adapter.sqlrow",203)=1

Manually removing it fixed my demo.

Robert Cemper · May 25, 2018 go to post

according to your description I'd  rather assume that you look for this functionality, especially concerning %LastKey

classmethod ClearStaticAppData(pConfigName As %String)

Clear static data for a config item. This is normally used to store already-processed status for input files, and other persistent values related to adapters, such as the %LastId for the SQL Inbound Adapter.

or 

classmethod InitializeLastKeyValue(pConfigName As %String, pNewLastKey As %String = 0) as %String 

Robert Cemper · May 25, 2018 go to post

A Compile has also an errlog parameter ist is clear that it does an inner error trapping.

ClassMethod Compile(
ByRef classes As %String = "",
qspec As %String = "",
ByRef errorlog As %String,
recurse As %Boolean = 0) As %Status [ CodeMode 
= expression ]

.
 therfore at termination it doesn't end in your catch{ }
 I think it may even react specially on RESJOB by just doing a HALT.

in a development environment, you may try to investigate this using a %ZSTOP routine

Robert Cemper · May 24, 2018 go to post

first option:

get the schema behind *.XSLX and import it using  XML Schema wizard.
It's incredible huge covering all XLS features you know and also that you don't want to know.
several hundred classes. XML Schema Wizard
I gave up by lack of understanding where to start. I'm not strong with XLS features.

second option:

use ActiveX_64  to access *.XLS
in Windows, your Studio has an Activate wizard that creates access to your local installed DLL.
so you need to have EXCEL installed on your server.

The wizard generates still a remarkable number of classes but it is more comprehensive
using them you can do Scripting in EXCEL. Activate Wizard

be careful to really get the 64bit version of the DLL
 

Robert Cemper · May 23, 2018 go to post

If your Table is on a Caché instance you may use the DSTIME feature that is also used to update DeepSee cubes.
You track changes, deletes, inserts and can act appropriately. 

Robert Cemper · May 22, 2018 go to post

I remember a similar situation some years back with a rather sophisticated multilevel directory structure on UNIX.

The final solution, especially for al kind of searching in unique file names, was a class
with the filename as ID and directory, summary, creation date, last modification as properties.
The search (in SQL) out performed anything used before.

The only extra work was kind of a register at file creation/modification which happened at a moderate rate.  
+ a nightly batch job to verify and do the reality check. 

Robert Cemper · May 22, 2018 go to post

It is not directly what you look for but GlobalReferences are to some extent proportional by some factor to instantiations.
especially if you deduct GlobalReads.
##CLASS(%SYS.ProcessQuery) could be a source for those figures

if you compare it to "normal" code it could be an indicator.