Compiled app runs differently on El Capitan

I have an desktop app created in Xojo 2018 r3 on a Mac running 10.13.6 (High Sierra).

On High Sierra and Mojave the app runs correctly but there is an issue running on El Capitan.

The code:

If( rs_Billing.Field("DME_Provider").Value=1) Then

seems to behave differently on the two OS’s. No error is created. The code executes without a crash or problem, but in High Sierra and Mojave everything executes correctly and in El Capitan it executes incorrectly.

The code is being executed in a thread and rs_billing is a property (Recordset) of the window in which it is executing. I see no other errors in the method.

I have literally copied the file multiple times to the other computer with the same result. It seems that it is completely related to what OS is running.

I can’t really use Debug because it works on my High Sierra machine. Can the code vary from one OS to another?

I don’t see how the code would vary from one OS to another. What does “executes incorrectly” mean?

It seems more likely that your RecordSet (rs_Billing) has different contents when run on El Cap, for some reason.

You might also try Remote Debugging to El Cap from High Sierra to see if that helps to pinpoint the problem.

[quote=427153:@Paul Lefebvre]You might also try Remote Debugging to El Cap from High Sierra to see if that helps to pinpoint the problem.

[/quote]
Didn’t even know that existed. Thanks a bunch. I’m sure that would help.

Here’s Remote Debugger info: https://documentation.xojo.com/getting_started/debugging/remote_debugging.html

Stupid question: how both machines are linked ?
I read nothing about that in the document URL above. :frowning:

Does changing it to

If( rs_Billing.Field("DME_Provider").Value.IntegerValue=1) Then

make a difference?
My first thought is something to do with variant being cast to string or double… otherwise assign that field to a variant variable and set a breakpoint to see if the value is actually what you expect.

[quote=427160:@Emile Schwarz]Stupid question: how both machines are linked ?
I read nothing about that in the document URL above. :([/quote]
The machines aren’t linked. I remoted into the El Capitan machine using remote access to transfer the application to the other machine. The database is a remote Postgres database that the application logs into remotely using SSL.

[quote=427161:@jim mckay]Does changing it to

If( rs_Billing.Field(“DME_Provider”).Value.IntegerValue=1) Then
make a difference?[/quote]
Just tried this - no difference.

I’ll have to figure out how Remote Debugging works and step my way through that part of the method to see what the value returned in the recordset is.

I looked at the raw data using Navicat and dme_provider is type Int2 with a value of 1. Seems like to me like the expression should return True always. Unfortunately, on the El Capitan machines it appears to return False while on High Sierra and Mojave it returns True.

Is the El Capitan Mac configured with different locale settings (for example, language or decimal separator)?

Cable (USB, Ethernet) ?
BlueTooth ?
WiFI ?
Something else ?

That information is missed (or I do not saw it).

Just checked. Language and locale settings are the same. Number formatting is the same.[quote=427181:@Emile Schwarz]Cable (USB, Ethernet) ?
BlueTooth ?
WiFI ?
Something else ?[/quote]
Even though each machine is in a different location physically, they are all connected in a wired network to the internet - then logging in remotely to the database.

Trying remote debugging this morning to see if that gives me a clue.

The remote debugger saved the day. I set up a VPN connection to the remote machine (and then screen sharing) and was able to run the remote debugger without a problem. Once able to debug remotely, I was able to see that the data was being pulled from the wrong record (and thus the difference).

The problem was a programming issue (of course) but I am not exactly sure why there was a difference between the two OS’s.

Fortunately, the remote debugger was able to show me that the wrong record was being pulled and I could correct the code. The error should have occurred on both High Sierra and Mojave, too. It was an interesting problem that now has a solution.

Thanks to all for your help.