You are welcome.
When I loaded the class first I was surprised too just to see 4 methods.
- Log in to post comments
You are welcome.
When I loaded the class first I was surprised too just to see 4 methods.
Amir,
I don't agree with you on %List
http://docs.intersystems.com/latest/csp/documatic/%25CSP.Documatic.cls?…
There's no annotation to be reserved or not to use it
Mike,
You are formally correct but data type %List just has no method LogicalToDisplay !
but:
- LogicalToOdbc
- LogicalToXSD
and reverse
it seems the implementer expected us to use $ListToString(...) and $ListFromString()
so far for consistency in object model support ![]()
Alexey,
- The final size after some design optimizations was
175 GB DataGlobals + 216 GB IndexGlobals ; separated for backup considerations (on 1 single drive
)
- data analysis was all done with SQL + a bunch of "homemade" SQL Procedures / ClassMethods running specific subqueries.
Documentation is the art to express facts in a way the non insiders could understand.
Engineers are quite often "unverbose" and "limited in verbal communication skills".
In any language exept programing languages ![]()
BTW. your book made things clear to me that I assumed to know for many years.
BTW. I appreciate if you accept my answer ![]()
I'd try to have just 1 query with 3 parameters and switch them on/off as you need
SELECT ID FROM Table WHERE (Field1 %STARTSWITH :par1
AND ((0=:sw2) OR (Field2 = :par2))
AND ((0=:sw3) OR (Field3 = :par3))
Now using only par1 means (par1=whatever, sw2=0,sw3=0, par2="",par3="") so the 2nd + 3rd condition is switched off and par2,par3 ignored
2nd case: (par1=whatever, par2=something, sw2=1,sw3=1, par3="") so only 3rd condition is switched off par 3 ignored
3rd case: (par1=whatever, par2=something, par3=other, sw2=1,sw3=1) all conditions active
you see this could be extended easily
%Library.Char uses MAXLEN as size:
it's applied in LogicalToOdbc and LogicalToDisplay appending Blank until MAXLEN is reached
anyting else is inherited from %String
before launching your request in your check your %Net.HttpRequest object
property Https is obviously set.
property SSLConfiguration has to be
The name of the activated TLS/SSL configuration to use for https requests.
if the request fails in execution
property SSLError tells you what went wrong
If request uses an SSL connection and a SSL handshake error has occurred, then SSLError contains text describing the SSL error.
more on %Net.HttpRequest here
http://docs.intersystems.com/latest/csp/documatic/%25CSP.Documatic.cls?…
It's not yet time for GBLOCKCOPY.
In namespace %SYS you should find a routine ^GCOMPACT
(at least according to docs http://docs.intersystems.com/documentation/cache/cache5docs/PDFS/GMSM.p…)
Based on the results of %GSIZE you now compact those globals with most blocks and lowest packing.
This generates free blocks that will be eliminated during GBLOCKCOPY.
Routine ^%FREECNT might help you to follow up your efforts
Purpose: Displays the total amount of disk space within a volume group and the amount of free space.
HTH
Check win version against version supported by Caché first.
http://docs.intersystems.com/cache20141/csp/docbook/DocBook.UI.Page.cls…
I was waiting for it.
And I missed this setup in other places.
So we are back to Documentation vs. Reality.
And another excellent example for the importance of this community.
develop on prod ? ![]()
you are right on %objlasterror. and that's how I work it around
but if you want to keep a log and chase sporadic error events this is quite an extra effort.
definitely a good idea to run routine ^%GSIZE to find the big consumers and packingdirectory: c:\intersystems\cache\mgr\user\
Page: 1 GLOBAL SIZE 08 Aug 2017
10:28 AM
Global Blocks Bytes Used Packing Contig.
-------- -------- --------------- ------- -------
CacheStd 1 140 2 % 0
CacheStdS 1 92 1 % 0
CacheStream 109 764.376 86 % 70
ERRORS 1 12 0 % 0
G1 1 72 1 % 0
thx.
so you confirmed to me that it was't just wishful thinking ![]()
pls. add some details on Caché version & os
Wow. 5.0 is roughly 12..15 yrs. back.
Could be ^GBLOCKCOPY existed then already in NS %SYS.
It should be able to cover your needs and create a new smaller CACHE.DAT in a new directory.
My personal preference is %Status: 1 = OK,
0 = something went wrong + standard or handmade Error Code
+ ability of $system.Status.Append(Status) to get a chain of error messages
which gives you the chance to drill down to the source. Which is especially important when
you get it from some embedded action.
The opposite to me is
<ZSOAP> that leave you alone with no hint what went wrong
or the famous <ZSG> homed in %Save() Method
to pass return value I prefer objects or variables passed byRef od Output
The other opposite is SQLCODE (would be better named SQLerror) 0 is OK. Anything else needs action
But that's tradition in SQL world since more than half a century
I'm deeply impressed.
should have seen this earlier.
all Studio settings are stored in Windows registry.
Search with regedit for InterSystem
as suggested earlier
thx
where do you verify the result and where do you see the error ?
If this user should also be programmer you can create a new role copying from %Developer
and then remove the DB's that you want him to lock out like this just for NS = USER
.
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.
For an engineer this sounds like a quite challenging exercise to rewrite a PGP lib in COS.
But it seems more promising to wrap the existing (and hopefully well tested) code and consume it from Caché using one of the existing Gateways:
- Callout Gateway http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY…
- ActiveX Gateway http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY…
- or just connect
over TCP/IP http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY…
or UDP http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY…
or a Pipe http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY…
I bet the community has even more ideas to reuse the existing code
congratualtions !
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
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.
