Native API , IRIS 2019 regression vs Cache .Net provider

1. checking the native API, with .net provider, from IS docs, I realize,

that it is not possible to wrap objectSricpt Class with .NET (C# for example) pure Class with it's methods/properties

and make pure instance syntax of: new myNetClass - as wrapper of irisClass.

as I realize, you can run .Net Class , only with .Invoke or iris.ClassMethodVoid("class.name","method")

such syntax, cannot execute event driven on proprety change, let say, with it's build in mechanizm in .Net

0 18
0 262
Question
· Aug 12, 2020
dotnet core

Is there an InterSystems supported dotnet core library or community contributed repo on the horizon? At this time we are exploring installing the ODBC driver in our containers but would rather use more robust solution.

2 15
0 1.2K

Hello,

I'm currently exploring alternatives to CSP/services and ODBC/Sql Maps for access to Caché. I'm not seeing a library which would interest me, so am considering creating one myself.

Does 'CacheConnection' in C# use RPC of some sort, or a defined protocol to communicate with Caché, or does it do so over telnet with scripted commands? I would assume the former. If so, is this a publicly documented protocol that can be implemented by library developers?

Any guidance in this area would be appreciated.

0 9
0 773
Question
· Oct 28, 2019
Error SQL Select

Hello,

I am having a problem with SQL Select, the command in portal is OK, show all items, but when I use a CacheDataAdapter in VB .NET show the message 'Incorrect list format 0>=0'. What could be this message? Because is the same SQL command.

Best Regards.

0 8
0 637
Question
· Nov 19, 2018
Copy csv data into a global object

Hi, I have a CSV file with a list of 5000 records in the following format

Name, Acc, division

Eric, 1234, 567

John, 1235, 987

Peter, 3214, 879

I just want to copy the Acc, division to a global so eventually the global would be like the following:

^People("Customers", "Acc.division")

Can you advice on how I can perform this from the terminal? This is a one time task. I want to read all the values from the csv file and insert them into the global

Regards,

Eric

0 7
0 924

I have SQLCompute with SQLComputeCode on a couple of Properties in my class.

These work fin when I insert/update via ObjectScript or SQL from the ManagementPortal.

However, if I insert (create new record) via my C# app using the Caché ODBC DLL the SQLCompute is ignored, it does not run.

Is this expected InterSystems Caché behaviour? We are on latest IRIS platform.

0 7
0 391

While I can query the HL7 message class EnsLib.HL7.Message (EnsLib_HL7.Message for SQL) to my heart's content in the SQL Shell or the Management Portal's SQL page, I can't seem to SELECT anything other than ID/%Id from an ADO/ODBC client. Properties such as TimeCreated, Name, MessageTypeCategory, etc. all seem to prevent the query from ever completing EXCEPT when I provide the ID as part of the WHERE criteria.

This works fine in the Management Portal and Shell:

0 7
0 386
Question
· Nov 4, 2020
Avoid $c(0) in globals

Good Morning,

I have this question for a long time. When I make an insert by SQL from an external application in the fields of type %String, if they are empty, it writes the character $c(0) in the global.

Is there a way so that if an Insert is received in a field of type% String with null value instead of the $ c (0) it leaves it empty?:

0 7
0 861

The .NET Core Identity model has an IPasswordHasher<> interface for for

  • Hashing a password so that it can be stored in a database
  • Verifying a provided plain-text password matches a previously stored hash.

I am getting invalid password errors during the login process when the .NET Core Identity model computes a hash from a plain text input and compares it to a password hash value I've returned from Caché. The default hashing algorithm is PBKDF2 with HMAC-SHA256, 128-bit salt, 256-bit subkey, and 10,000 iterations (detailed article on .NET Core Identity PasswordHasher). The algorithm Caché uses is probably different which may be why I am getting errors.

0 6
1 2.2K

Recently I came across a very strong statement to the effect that InterSystems.Data.CacheClient.dll library works fast because it does not open a TCP/IP connection, instead it works in the same process as a database. It made me pause for quite some time. Firstly because .Net Managed Provider, which utilises this library, opens TCP/IP connection to the database (and it is stated in the documentation "Using .NET and the ADO.NET Managed Provider with Caché"). And secondly, because as far as I know only eXtreme applications attach themselves to the process.

1 6
0 1.2K

Our ERP solution runs on different sql databases (such as ms sql and posgre). We are using the same code for all plattforms, doing database-specific changes in the db driver for each type of database.

There is one function in our program, where the user can store long text to discribe something, which is used in print and web. This text is treated/stored as html and can include pictures. The pictures in the html are stored base64 coded inside the html and the html is stored as text in a column. In other database systems, this is treated as TEXT or BLOB, and workings just fine.

1 6
0 265

I am importing scriptlink wsdl in the form designer. I get the following error:

Error Importing WSDL. Please validate WSDL address. ERROR #6301: SAX XML Parser Error attribute value expected while processing Annonymous Stream at line 28 offset 73.

Please advise.

Thank you,

Chris Kennedy

0 5
0 341

Hi,

We have created a dll with .Net that generates a MS Word document with a template. The .Net method works, we have tested it with Visual Studio and it generates the document.

But once we have created the dll and embebed it in Ensemble through the Wizard, when we try to execute the method that generates the document, it doesn't work. It doesn't throw us an error, it simply doesn't open the template.

We have seen that MS Word program is opened, but that's all.

0 5
0 625

Does developing a RESTful API in Caché remove the requirement to use the InterSystems.Data.CacheClient.dll and generate proxy classes using the Caché Object Binding Wizard for .NET web development? If anyone has links to sample applications using .NET with Caché and REST Services, I would be grateful if you could share them.

0 4
0 518

Hello!
There is a class query “MemberStatusList” in the SYS.Mirror class that I would like to call from a .NET client application.
I know that means that there is also a generated class method called MemberStatusListFunc.
What is the best way if any exist to call them from a .NET application?
Just see if anything responded I tried using something like

IRIS iris = IRIS.CreateIRIS(conn);
var returnValue = iris.ClassMethodString("%SYSTEM.Mirror", "MemberStatusList", "NAMEOFTHEMIRROR")
---

0 4
0 348

Hi

I am upgrading our application from dotNet Framework to dotNet Core.

Prior to the upgrade I was able to connect to both my Cache & IRIS instances using the IRIS ADO.NET driver.

However, in dotNet Core, whilst I can connect to IRIS, I get the following error connecting to Cache.

InterSystems IRIS Provider is not compatible with Cache xDBC server

I am using the IRIS driver from the Windows (x86-64) 2022.1 distribution (the one in dev\dotnet\bin\net5.0).

The cache version is Cache for Windows (x86-64) 2018.1.2

Thanks

0 4
0 403

We are updating a C# module which creates consumes an OdbcConnection from System.Data.Odbc. This module used to create a DSN-less connection through the InterSystems Cache driver, and we are updating it to call the IRIS ODBC35 driver following migration of the target database.

The Cache connection was formed formatted as follows:

0 4
1 390

I ran the below query in three different modes. Coordinated Universal Time is 5 hours ahead of Eastern Time so there is difference in value from column 1 and column 2 in ODBC, Display mode, but not in Logical Mode. By default the query executes in ODBC mode when we query the data from outside world(via ODBC connection).

I don't know why query 2 and query 3 outputs different from query 1.

Query 1. Ran in Logical mode, DATEPART() took in memory stored timestamp data(stored in UTC)

0 3
0 397