09-25-2023 02:49 PM
This same vi doesn't create an error message when I point to the older oracle server. I'm thinking that the new sever is stopping it because the .NET object version isn't high enough or some type of TLS firewall/security setting is preventing the connection from taking place. The odd thing I noticed about this .net object is that if I point it to the old server it will allow me to enter an username and password. When I point it to the new server the .net object instantly crashes and doesn't even allow me to attempt to put in a username and password.
I have a labview project that connects with no problems to an old oracle server but when I try to connect it to a new server I get the following error message:
Property Node (Arg :1) Error accessing property Oracle.ManagedDataAccess.Client.OracleConnection.ConnectionString, (System.ArgumentNullException: Key cannot be null.
Parameter name: key) <append><b>System.ArgumentNullException</b> in Users.lvclass:CRMS_LOGIN_CONTROL.vi->Users.lvclass:Login.vi->UTIC Main.vi
Is there any other reason why this error is being created when I point it to the new oracle server versus point it to the older oracle server?
09-25-2023 03:36 PM
One thing I find interesting is that if your screenshots are correct, nothing prior to reading the "OracleDBConnection" property produces an error, reading that property does not produce an error, but that property is outputting 00000000 i.e. "null" as its value, which is why the property after that generates an error. I wouldn't describe that as "the .net object instantly crashes"... it outputs a value without producing an exception, that's hardly a crash. Unless there's something on the front panel of the control you're not mentioning...
I also note that it seems that none of what you call is something along the lines of a method to open a connection. You call methods to add security levels, then write a bunch of properties, then register callbacks, then try to read back a property you didn't set, which returns a null value.
Property writes "under the hood" can sometimes do other things, so it's technically possible that the "OracleDBConnection" property would have been set up by the action of writing those properties (or with a default value), but without seeing some kind of documentation on the property (and any related ones) it's hard to know for sure what might be going on here. Maybe there's a method you need to call after changing the "DatabaseName" property to recreate the "OracleDBConnection" property, or something like that.
Also just as a general note, a lot of your wires travel under other wires, behind block diagram objects, or behind structure walls. If you're only posting screenshots of code that makes it a lot harder to be sure that you don't have any mis-wiring going on.