#Caché

30 Followers · 4.5K Posts

  

InterSystems Caché is a multi-model DBMS and application server. See more details here.

Documentation.

Question Jason Ip · Sep 20, 2016

So just this morning we started to get this error from all of our SQL-client based tools that connect to our Caché SQL via ODBC: 

[%msg: <Error instantiating cached query class in Prepare(): <METHOD DOES NOT EXIST>Prepare+41^%SYS.SQLSRV *%New,%sqlcq>] (State:S1000, Native Code: 190)]

No queries work... any help? stumped over here.

doing a SQL query via Class %SQL.Statement

##class(%SQL.Statement

in Caché command line works... so that's why I think it's an ODBC issue..

I can't seem to find a SQLSRV class in the %SYS documatic

6
0 1301
Question Nadirbek Nurlybekov · Nov 1, 2017

Greetings to all! Faced with such a problem, I ask for help, someone with great practical skills I think has already implemented this.The task was not to delete any objects from the database, but somehow mark this data deleted by client, because of this, I added Property Deleted As% Boolean [InitialExpression = 0];in the class.And in the redefined method %OnDelete:

ClassMethod %OnDelete(oid As %ObjectIdentity) As %Status [ Private, ServerOnly = 1 ]
{
        s person = ..%Open(oid)
        s person.Deleted = 1
        d person.%Save()
        Quit $$$ERROR(2112,
3
0 894
Article Danny Wijnschenk · Nov 1, 2017 8m read

Advent of Code is a series of 25 small programming challenges, it's an ideal way for beginners to start learning a computer language, and for advanced people to sharpen their programming skills.

There are small and bigger puzzles, which you can solve typically in half an hour to a few hours. (Looking at the leaderboard, the top aces can do them in less than 10 minutes.)

Advent of Code is created by Eric Wastl, you can find all info on https://adventofcode.com/.

To help you get trained for this year's challenges which start at December 1st, we* will try to solve and comment the puzzles from 2016.

0
1 1444
Question Pravin Barton · Oct 30, 2017

I want to limit the length of the value of a textarea in Zen. In HTML the textarea element has a 'maxlength' attribute, but the Zen component doesn't have an equivalent property. Is there any way to add a maximum length in Zen short of creating my own custom component?

3
0 820
Question Sergio Martinez · Oct 16, 2017

Hi,

I know you're doing a big effort to build a new IDE in Eclipse ecosystem but Visual Studio Code is a new an even better and faster tool for coding... did you have any plans to release any COS extension for it in the near future? There you can already find extensions for all current more common progrmaming languages and it would be great to have COS as one of them.

Thanks

5
0 1546
Question Eduard Lebedyuk · Oct 30, 2017

I'm extracting text from HTML (more on how - here), and after I extract text it has two problems:

  • Lot's of $c(10) control characters
  • Multiple whitespaces

Here's an example of the text extracted from HTML page:

set text = " "_$c(10)_" "_$c(10)_" "_$c(10)_" "_$c(10)_" "_$c(10)_" "_$c(10)_" "_$c(10)_" "_$c(10)_" "_$c(10)_" "_$c(10)_" "_$c(10)_" "_$c(10)_" "_$c(10)_" "_$c(10)_" "_$c(10)_" "_$c(10)_" "_$c(10)_" "_$c(10)_" "_$c(10)_" "_$c(10)_" "_$c(10)_" "_$c(10)_" "_$c(10)_" "_$c(10)_" "_$c(10)_" "_$c(10)_" "_$c(10)_" "_$c(10)_" "_$c(10)_" "_$c(10)_" Word1"_$c(10)_" "_$c(10)_" "_$c(10)_" "_$c(10)_"
2
0 2026
Question Alexey Maslov · Oct 17, 2017

This small function is of great need sometimes. My solution is straightforward:

dupquote(str) ; duplicate quotes in str    quit $replace(str,$char(34),$char(34,34))

I'm just curious whether other solutions exist. Is there some "standard" and/or quicker approach which I've just overlooked?

6
0 1246
Question Eduard Lebedyuk · Oct 26, 2017

I have a classname and a property name. I want to know, when I get object value directly from a global, which property corresponds to which position in the $lb structure.

Here's what I got so far:

Class Utils.Storage {

/// write ##class(Utils.Storage).GetPosition()
ClassMethod GetPosition(class As %Dictionary.CacheClassname = "Sample.Address", property As %Dictionary.CacheIdentifier = "Zip") As %Integer
{
    set strategy = $$$comClassKeyGet(class, $$$cCLASSstoragestrategy)    
    set strategyId  = class _ "||" _ strategy
    &sql(SELECT Name INTO :position
         FROM
6
0 698
Question p rd · Oct 25, 2017

I defined the variables in Cache, as follows:

Property Content As% Stream.GlobalCharacter [Required, SqlColumnNumber = 3, SqlFieldName = B_Content];

And then use the SQL statement to add:

insert into table_name (B_Content) values ('very long string');

But the error:

 org.springframework.http.converter.HttpMessageNotWritableException: Could not write content: No serializer found for class com.intersys.jdbc.CacheInputStream and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: com

3
0 686
Article David E Nelson · Mar 9, 2017 9m read

Apache Spark has rapidly become one of the most exciting technologies for big data analytics and machine learning.Spark is a general data processing engine created for use in clustered computing environments.Its heart is the Resilient Distributed Dataset (RDD) which represents a distributed, fault tolerant, collection of data that can be operated on in parallel across the nodes of a cluster.Spark is implemented using a combination of Java and Scala and so comes as a library that can run on any JVM.

5
1 2846
Question Nadirbek Nurlybekov · Oct 26, 2017

Greetings to all!!!How to get the value of the Content-Type field from the object of the class %Stream.Object obtained with:

stream=% request.GetMimeData (FormDataName, 1)

I tried:

write stream.GetAttribute("Content-Type")write %request.Get("Content-Type")

but always returns a void, although it should be "image/jpeg", "application/pdf" or something like that.
In JS:

    var formData = new FormData();
    formData.append('file', element[0].files[0]);
    console.log(element[0].files[0].type);

The console of browser displays "image / jpeg", "application / pdf",  etc.

2
0 531
Question Nadirbek Nurlybekov · Oct 26, 2017

Greetings to all!!!Suppose there is a table Mother (ID, Name) and Child (ID, Name, Mother), Mother in the table Childis a relationship.Let's say the task is to deduce the names of all the children whose their moms' names start with the letter 'A', I can do this in two ways in sql, and I can not understand the difference, the pros and cons that when to use:

1) SELECT Child.Name FROM Mother INNER JOIN Child ON Mother.ID = Child.Mother WHERE Mother.Name LIKE 'A%'
2) SELECT Child.Name FROM Child WHERE Child.Mother->Name LIKE 'A%'

1
0 509
Question Nic Lorenzen · Oct 20, 2017

Hi all, 

Is there a way to setup a classmethod or routine to execute immediately after cache is started?

I wrote a batch file that does execute the cache start, but I'm getting an Access Denied error on the cession command despite running as Administrator:

ccontrol start HEALTHSHARE1
csession HEALTHSHARE1 -U %SYS "##class(SomeClass).SomeMethod()"

Thanks for the help/suggestions

6
0 889
Question Alice Shrestha · Oct 19, 2017

Hi,

I am getting the following error while logging in using LDAP authentication,

"An error occurred with the CSP application and has been logged to system error log (^ERRORS)". I've set the connection up and using Authentication Test  was successful. I seem to be able to login as well but keep getting that error. If I allows unauthenticated access then the page works but changing it to LDAP is not working.

The LDAP account once created in Cache has U access to the resource related with the web application.  

Also, when I check the ^ERRORS variable there is no data there. 

Kind regards,

Alice

1
0 761
Question Rajesh Shetty · Oct 20, 2017

Hi,

I am receiving a CSV file as Ens.StreamContainer using pRequest As Ens.StreamContainer

In the studio code, pRequest.Stream.ReadLine()  returns following records when read in a while loop using pRequest.Stream.AtEnd = 0

Appt ID , Patient ID , Patient Name    , Program ,   Appt Date , Appt Start

       102 ,            1002 ,    "Gene, Jill"       ,  HTR          , 06/06/2017 , 10:00

       103 ,            1044 ,    "Smith, John" ,  HTR          , 06/10/2017 , 08:00

Question:  How do I extract individual data values from the pRequest.Stream  Stream Container?

2
0 1146
Article Evgeny Shvarov · Oct 19, 2017 1m read

Sometimes you can face the situation when you did update the web app on Caché server but you cannot get the newest version of the app in a browser.

Here are couple recipes which help me to solve it. From simplest to more sophisticated and not obvious.

1. Refresh page in a browser

In Chrome it is Ctrl+R or 'Refresh' button. Obvious, but helpful.

2. Hard reset in a browser

If you are in Chrome, open Developer tools

and then right click on Refresh button.  Less obvious and very helpful sometimes.

3. Clear cache in CSP Gateway

If 1 and 2 don't work for you, try to flush the CSP Gateway cache.

Open Caché

1
0 1664
Question Yaniv Ben Malka · Oct 10, 2017

Hi,

I have a class with around 400k lines and 60 columns. Class storage is Cache SQL storage (Mapped from a global).

 I want to create multiple indices on certain fields.

I am familiar with two approaches:

1. Create a new map (Index type) on a pointer global.

2. Create a bitmap index

Which approach is more recommended to be used in the case I described? If there are any other approaches, I will be happy to hear.

Thanks :)

11
0 872
InterSystems Official Steve Brunner · Oct 19, 2017

InterSystems is pleased to announce the availability of these maintenance releases:

  • Caché and Ensemble 2017.1.2
  • HealthShare Health Connect v15.03 for 2017.1.2

Caché and Ensemble are available on the same platforms as 2017.1.1

  • The full list of corrections can be found in the release notes
  • The version number of the kits for these releases is 2017.1.2.217.0
  • Oracle Solaris 10, 11 for SPARC-64 and Oracle Solaris 10, 11 for x86-64 are not yet approved for release.  They are expected to be included in the next maintenance release.

HealthShare Health Connect v15.03 on core technology

0
0 446
Question Ruslan K · Oct 18, 2017

I have a class. In class there is an index. This index is for quick search on name property.

Class User
{

.....

Property Name as %String;

Index NameInd On Name;

.....

}

This class is mapped to some global ^GL(userId) = "Name*other data....****"

And there is also index global ^GLNameIndex(Name, userId) = ""

When I add new User entry through class, f. i.

S user = ##class(User).%New()
S user.Name = "Some name"
​D user.%Save()

calling method %Save() adding new entry to index automatically.

And this way index ^GLNameIndex is always actual.

But in my program new user entry can be added

6
0 1713
InterSystems Official Steve Brunner · Oct 13, 2017

InterSystems is pleased to announce the release of Caché, Ensemble, and HealthShare Health Connect v15.03

Some highlights for Caché and Ensemble are:

  • Parallel dejournaling to improve throughput of mirroring and journal restore
  • New iFind and iKnow features like co-occurrence search, performance improvements, and more
  • SQL enhancements in Query Auditing, optional ANSI SQL operator precedence, and Frozen Plan Evaluation, along with several query optimization improvements
  • Ensemble updates include DICOM enhancements, XML performance, and XSLT2 activities in BPL.
  • For complete technical details
3
0 948
Question CJ H · Oct 17, 2017

I have a method would return %Status,

this method would run some sql queries and if the execution of these queries fail, I would like to return asap.

So how could I wrap the %SQLCODE into a %Status variable?

Thank for your help.

5
0 1172