go to post Stephan Gertsobbe · Jun 15, 2021 The database your data is written to is mounted read only or write protected for the user you are running the database engine (write deamon) with
go to post Stephan Gertsobbe · Jul 16, 2019 No that's not really what I meat. My question was much more generic about data projection of object data like listOfObjects.When you look at the projected data of those "object" collections they are projected as $LISTBUILD lists in SQL. So the question was, is there a reporting tool out there in use, that can handle the object data from IRIS as for IRIS there is no object binding anymore like there was for Caché.For Java there is the cachedb.jar and that binding doesn't exist for IRIS.
go to post Stephan Gertsobbe · Dec 18, 2018 Hello Ramya,sorry for the confusion.The class Config.Configuration is deprecated. so it should'n be used anmore (mentioning it, was my fault, as my samples simply came from our code base, where we still use this interface).so assuming you have a database named TEST2 in your system you would calldo ##class(Config.Configuration).AddNamespace("TESTNAMESPACE","TEST2","TEST2")But this is, as mentioned deprecatedThe object orientated way to do this remains in Config.Namespaces. In the docimentation there are actually samples on what to do to create a new namespace using this interface.
go to post Stephan Gertsobbe · Dec 14, 2018 It's a bit difficult to answer this question in general. But I will try to give you some places to look at.First Creating the databases on the terminal you would want to look at documentation for SYS.Database so you might end up with a method or even key it in on the terminal like this ClassMethod createCacheDatabase(path As %String) As %Status [ Final, Private ] { #dim db as SYS.Database = ##class(SYS.Database).%New() set db.BlockSize=8192 set db.Directory = path set db.ExpansionSize=0 set db.ResourceName="%DB_%DEFAULT" set db.NewGlobalCollation=5 quit db.%Save() } Now you have created you databases you need to tell cache to create a namespace using those. The interface to do that sit's in the Config.Coniguration class. Please refer to Config.Configuration Class Documentation in the online documentation for more info about that interface. The deprecated way was (sorry I've just reread that documentation): What you will do is run ##class(Config.Configuration).AddNamespace(namespace,dbName,dbName) and after that maybe to some ##class(Config.Configuration).AddGlobalMapping(..) ##class(Config.MapPackages).Create(...)etc.The new interface to do a Namespace is in Config.Namespace Regardless wich you want to use they are both pretty straight forward. This is how you can create programmatically weather on terminal or from within your code a namespace, databases and the appropriate mappings.Oh I should mention you have to be in "%SYS" NAMESPACE to be able to do this
go to post Stephan Gertsobbe · Dec 10, 2018 I'm not sure if I'm missing something but you are actually not removing anything, you are simply setting the value at index xyz to the empty string.If I understand correctly I think you could use #dim i,cnt as %Integer = tList.Count() for i=1:1:cnt { #dim key as %Integer = tClaim.Find(tList.GetAt(i)) do:(key>0) tClaim.RemoveAt(key) } As I said. if I understand your question correctly, that is actually removing everything from tClaim that is part of tList.
go to post Stephan Gertsobbe · Dec 9, 2018 The problem with the CSV SQL procedure is that it doesn't take care of the masked delimiters.if the file for the above sample would contain a line (if the masking character is the very common and usual ")4711,"Peter, Paul and Mery","Sample",undecided,500the 2. Part is only read as Peter (at least on Caché 2017.2 and IRIS 2018.1.2 so atm. the only chance when the data doesn't play nicely you have to implement the CSV reading yourself (which is much slower)