Robert Cemper · Jul 21, 2017 go to post

I wish I had this half a year ago when I was teaching Caché basics to total fresh developers.

Great stuff.

Robert

Robert Cemper · Jul 22, 2017 go to post

If there is an index defined on PBD_PBO_ParRef  is it correctly generated?
If not sure, do rebuild index from MgmtPortal. 

Robert Cemper · Jul 23, 2017 go to post

Using the term MACRO for code saved as .INC is quite a challenge to beginners working in .MAC and more in .CLS
Always a nice check for a trainer to verify attention of his victims

Robert Cemper · Jul 24, 2017 go to post

I'm fully with you.
Using hidden %System.whatever   Classes is as bad practice as using undocumented $zu(anynumber,  ,  , )

Robert Cemper · Jul 25, 2017 go to post

And if you also want to be sure that also the Method %New exists you my use

write $$$comMemberDefined(ClassName,"m","%New")

[just reading through %occReference.inc]

Robert Cemper · Jul 25, 2017 go to post

I just got this information:

Developer group worked at it and version 2018.1 1 will contain the new pattern.

smileysmiley

Robert Cemper · Jul 25, 2017 go to post

so you may use $$$comClassDefined(class)  for compile classes

or go for ^oddCOM(....)

Robert Cemper · Jul 27, 2017 go to post

since every installation of Caché has it's gateway I'm not clear what you did by
" configured as CSP gateway. "
with no manual change the gateway always talks to your local server ser-app-w

From CSPgatewayMgmt on ser-app-w  you should check access to ser-app-db

Robert Cemper · Jul 28, 2017 go to post

Journaling a DeepSee environment is a real performance killer.
Take a look of the Journal when  using a Bitmap Index 

Robert Cemper · Jul 29, 2017 go to post

You are right. The check for pure number got lost

if  +number=number  has to precede 

so the combined is  if  +number=number,number\1=+number

Robert Cemper · Jul 31, 2017 go to post

This is a matter of interpretation.
If you also allow leading 0 for integers   (eg. 00123) then you need to normalize it.

Robert Cemper · Jul 31, 2017 go to post

 (in my case 192.168.56.1), whereas one would need 71.174.62.16

This means you try to get information that is stored in your router's and/or firewall's  (NAT, DHCP,... ) routing/mapping table.
I'd assume you need to use some utility of your OS using $ZF(-1,...) $ZF(-2,...) to get the outside view of the inside server

This might work inquiring nslookup on a DNS server outside your NAT, ...  Though I never tried it

Robert Cemper · Aug 2, 2017 go to post

Thanks Ed! 
I just went through old DC post for half an hour+ to detect it. frown

It's much better than my link to Facebook. yes

Regards

Robert Cemper · Aug 2, 2017 go to post

just a guess:
with do content.MoveTo(content.Size - 1)   you are probably just between CR and LF 

Could you try do content.MoveTo(content.Size - 3)  just to make sure you a e before CRLF

I'm not sure how EOL is triggered
eventually also check returned success code

Robert Cemper · Aug 2, 2017 go to post

I don't see a call for  wnl()   
but ancient coding practices  would suggest its:  writenewline just that
and that's what it does without any other content.
though the remark is rater direct if interpreting feedback := line

// Should be smart as well: routines ending with write ! will create an empty feedback!
Robert Cemper · Aug 2, 2017 go to post

if you change wnl() ...
to
wnl()  quit
you just disable it to see if it plays a role at all    

Robert Cemper · Aug 2, 2017 go to post

to me this looks like your content had an extra $C(13,10) at the end.
It could help to  have the full content at hands. 
eg:
before  content.OutputToDevice()
set ck=content.Read()
set ^ck($i(^ck))=ck
do content.Rewind()

I expect  zwrite ^ck will show more than 3  lines
That would indicate that the source of trouble is on the input side. 
Some closing action ?   

Robert Cemper · Aug 2, 2017 go to post

You still have the option to create your own %ZLANGC00.int 
and make you own ZZEXIT to avoid the risky HALT
It's a miracle to me how HALT could survive from PDP-7 sn#103 at MGH and nobody touched it.
                           

Robert Cemper · Aug 3, 2017 go to post

indeed this is surprising.

but is this really:   do content.ReadLine(,,isEOL)

it should be a pass by reference to receive something back do content.ReadLine(,,.isEOL) 
with the <dot> in front of the variable 

Robert Cemper · Aug 6, 2017 go to post

Thanks for the pointer!
Good to see that someone got the time to productize the idea of Custom Index Type
With this development the win could have been even more dramatic.
My benchmark was done in  March2011,  so Caché version must have been 2010 .  
2013.1 was my last version @ISC  just rolling out.
At that time bitmaps helped only with rather relaxed precision.