Iryna Mykhailova · Apr 17, 2023 go to post

I see that it's a known situation, they even added a NB in the post:

NB Dear contestants, please take into consideration that support for the contest cloud sql environment is only available during business hours M-F 9-5 US Eastern Time. We seem to be experiencing a failure of the cloud environment such that deployments are stuck in Pending status for some users.

Iryna Mykhailova · Mar 16, 2023 go to post

Before:

Query GetAllOlderThan(Age As %Integer = 65) As %Query(ROWSPEC = "Name:%Name,Age:%Integer") [ SqlProc ]
{
}

ClassMethod GetAllOlderThanExecute(ByRef qHandle As %Binary, Age As %Integer = 65) As %Status
{
    set qHandle = $lb($random(200), 0)
    Quit $$$OK
}

ClassMethod GetAllOlderThanClose(ByRef qHandle As %Binary) As %Status [ PlaceAfter = GetAllOlderThanExecute ]
{
    set qHandle = ""
    Quit $$$OK
}

ClassMethod GetAllOlderThanFetch(ByRef qHandle As %Binary, ByRef Row As %List, ByRef AtEnd As %Integer = 0) As %Status [ PlaceAfter = GetAllOlderThanExecute ]
{
    if $ListGet(qHandle, 2) = $ListGet(qHandle, 1)
    {
       Set Row = ""
       set AtEnd = 1
    } else
    {
       Set Row = $Lb(##class(%PopulateUtils).Name(), ##class(%PopulateUtils).Integer(18, 90))
       set $list(qHandle, 2) = $list(qHandle, 2) + 1
    }
    Quit $$$OK
}

After:

Query GetAllOlderThan(Age As %Integer = 65) As %Query(ROWSPEC = "Name:%Name,Age:%Integer") [ SqlProc ]
{
}

ClassMethod GetAllOlderThanExecute(ByRef qHandle As %Binary, Age As %Integer = 65) As %Status
{
    set qHandle = $lb($random(200), 0, Age)
    Quit $$$OK
}

ClassMethod GetAllOlderThanClose(ByRef qHandle As %Binary) As %Status [ PlaceAfter = GetAllOlderThanExecute ]
{
    set qHandle = ""
    Quit $$$OK
}

ClassMethod GetAllOlderThanFetch(ByRef qHandle As %Binary, ByRef Row As %List, ByRef AtEnd As %Integer = 0) As %Status [ PlaceAfter = GetAllOlderThanExecute ]
{
	if $ListGet(qHandle, 2) = $ListGet(qHandle, 1)
	{
		Set Row = ""
		set AtEnd = 1
	} else
	{
    	Set Row = $Lb(##class(%PopulateUtils).Name(), ##class(%PopulateUtils).Integer($ListGet(qHandle, 3), 90))
    	set $list(qHandle, 2) = $list(qHandle, 2) + 1
	}
    Quit $$$OK
}

}
Iryna Mykhailova · Mar 16, 2023 go to post

> Hi @Iryna Mykhailova and welcome to the Tutorials Contest.

Why, thank you wink

Both %SQLQuery and %Query are class queries. As for the Studio - I do believe it's the easiest way for people who start working with IRIS to get acquainted with the technology!

You are right, I forgot to keep in mind that I have a parameter for the second example. I will correct it to reflect that I'm looking for people older than the exact age. Thanks for the heads-up!

Iryna Mykhailova · Mar 16, 2023 go to post

I know about multidimensional properties. But at this pint they aren't even listed as an option in the Wizard. And I'm not sure they are that useful for modern applications. I would guess their use was to transition applications from hierarchical model to object model. 

Iryna Mykhailova · Mar 15, 2023 go to post

Yes, and what I love about it - you can use any ODBC based tool and write a simple SQL select and voila:

Iryna Mykhailova · Dec 13, 2022 go to post

Ok, I found it. It was Ctrl+/

But I have several / on my keyboard and only the one on the main keyboard (with letters) works. 

Iryna Mykhailova · Dec 12, 2022 go to post

I don't really care what are the exact keystrokes, I just want them to work, and they don't  crying

Iryna Mykhailova · Dec 11, 2022 go to post

Sure, I know /* */ work.

But students use different IDEs so they get used to some behavior and adding multiline comments is apparently one of them. In my Studio it shows like this and the menu works but the shortcuts don't.

Iryna Mykhailova · Nov 30, 2022 go to post

Thank you blush I had to figure out how this whole thing works (and to search lots of sites to get the general idea) so decided it would be nice to share the basics with others as well.

Iryna Mykhailova · Nov 13, 2022 go to post

Will this do, to have both delete and update:

CREATE TABLE nodes2 (
        name VARCHAR(50) NOT NULL, 
        parent VARCHAR(50), 
        PRIMARY KEY (name), 
        FOREIGN KEY(parent) REFERENCES nodes (name) ON UPDATE cascade on DELETE cascade
)
Iryna Mykhailova · Nov 10, 2022 go to post

Yes, that's what I did (because, obviously, the class being abstract is not the cause - works great in other scenarios):

Class Test.NewClass Extends %Persistent [ Abstract, NoExtent ]
{}

Class Test.NewClass1 Extends Test.NewClass
{}

I do know you don't inherit all from the secondary class, but I though the number of things I do inherit was more than just parameters, properties and methods. I take it queries, foreign keys, triggers, projections are out as well?

Iryna Mykhailova · Jul 23, 2022 go to post

Yes, I do have a DLL. Besides, the rest of the menu items are OK.

The same problem with About screen:

Iryna Mykhailova · Dec 23, 2021 go to post

And checked  yes 

All is good except for the SQL insert syntax. It should be INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...). Meaning the ending is VALUES ('paperback' )

Iryna Mykhailova · Dec 22, 2021 go to post

BTW, is it really 1000 characters or words? wink Because 1000 characters are around 260 words.

Iryna Mykhailova · Jan 12, 2021 go to post

3641144 - is a max length of a string in Caché/IRIS. So maybe the developers just used it to work with arrays in C# as well. I guess it's more a question for them, because I don't have access to the source code to see what's going on "under the hood".

Iryna Mykhailova · Nov 5, 2018 go to post

In theory it should work with .NEt Core, it depends on what InterSystems is using from core libraries. When you try it, please tell.