Hi everybody,
I am trying to migrate from jRDC1 to jRDC2, we have been using version 1 because all of our apps use that version, but since version 2 has been out for a LONG time, I am testing version 2 to see what changes are needed, but also to see if our current code can coexist with version 2 of the server and then, the new apps maybe use version 2.
So, after downloading the version 2 of the server from here, and opening it in B4J, I proceeded to uncomment the 3 blocks that deal with VERSION1, and ran the project.
I only needed to add “/rdc” to the rdcLink in the test app (version 1 of the DBRequestManager class) and everything “seems” to work fine … but for a few details:
Here is the log for the error:
Best regards
I am trying to migrate from jRDC1 to jRDC2, we have been using version 1 because all of our apps use that version, but since version 2 has been out for a LONG time, I am testing version 2 to see what changes are needed, but also to see if our current code can coexist with version 2 of the server and then, the new apps maybe use version 2.
So, after downloading the version 2 of the server from here, and opening it in B4J, I proceeded to uncomment the 3 blocks that deal with VERSION1, and ran the project.
I only needed to add “/rdc” to the rdcLink in the test app (version 1 of the DBRequestManager class) and everything “seems” to work fine … but for a few details:
- If I call (by mistake) a query that does not exist in the config.properties file, in version 1, I get a 1 line “Query missing” error in the log, but in version 2, I get a 500 error with a lot of HTML text that says “Invalid SQL sentence” … Would it be possible to get only the one line “Query missing” message?.
- I was testing all the queries, and in version 1, I can call a query with the SQL statement “SELECT TO_CHAR(SYSDATE, 'YYYYMMDD') AS FECHA FROM DUAL”, and there's no problem, BUT with version 2, the same query throws a “(SQLException) java.sql.SQLException: invalid column index” error, and does not return the result of the query. It is weird, because in the Oracle SQL Developer the query runs correctly, in version 1, it also runs fine, but in version 2, it throws that error!
- I "think" it is the "to_char" function, because another query that throws the same error also uses that function, but I have another 3 queries that also use to_char and have no issues , so now I am not so sure!
- I tried the same queries with version 2 of the DBRequestManager class, and I get the same error.
Here is the log for the error:
B4X:
java.sql.SQLException: Ãndice de columna no válido
at oracle.jdbc.driver.OraclePreparedStatement.setStringInternal(OraclePreparedStatement.java:5168)
at oracle.jdbc.driver.OraclePreparedStatement.setObjectCritical(OraclePreparedStatement.java:8098)
at oracle.jdbc.driver.OraclePreparedStatement.setObjectInternal(OraclePreparedStatement.java:8034)
at oracle.jdbc.driver.OraclePreparedStatement.setObjectInternal(OraclePreparedStatement.java:8767)
at oracle.jdbc.driver.OraclePreparedStatement.setObject(OraclePreparedStatement.java:8748)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.setObject(OraclePreparedStatementWrapper.java:230)
at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.setObject(NewProxyPreparedStatement.java:878)
at anywheresoftware.b4j.objects.SQL.ExecQuery2(SQL.java:368)
at b4j.example.rdchandler._executequery(rdchandler.java:626)
at b4j.example.rdchandler._handle(rdchandler.java:948)
at jdk.internal.reflect.GeneratedMethodAccessor7.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at anywheresoftware.b4a.shell.Shell.runMethod(Shell.java:629)
at anywheresoftware.b4a.shell.Shell.raiseEventImpl(Shell.java:237)
at anywheresoftware.b4a.shell.Shell.raiseEvent(Shell.java:167)
at jdk.internal.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at anywheresoftware.b4a.shell.Shell.runMethod(Shell.java:629)
at anywheresoftware.b4a.shell.Shell.raiseEventImpl(Shell.java:237)
at anywheresoftware.b4a.shell.Shell.raiseEvent(Shell.java:167)
at jdk.internal.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:111)
at anywheresoftware.b4a.shell.ShellBA.raiseEvent2(ShellBA.java:100)
at anywheresoftware.b4a.BA.raiseEvent(BA.java:98)
at anywheresoftware.b4j.object.JServlet$Handle.run(JServlet.java:146)
at anywheresoftware.b4a.keywords.SimpleMessageLoop.runMessageLoop(SimpleMessageLoop.java:47)
at anywheresoftware.b4a.StandardBA.startMessageLoop(StandardBA.java:43)
at anywheresoftware.b4a.shell.ShellBA.startMessageLoop(ShellBA.java:121)
at anywheresoftware.b4a.keywords.Common.StartMessageLoop(Common.java:180)
at anywheresoftware.b4a.shell.Shell.raiseEventImpl(Shell.java:309)
at anywheresoftware.b4a.shell.Shell.raiseEvent(Shell.java:167)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:111)
at anywheresoftware.b4a.shell.ShellBA.raiseEvent2(ShellBA.java:100)
at anywheresoftware.b4a.BA.raiseEvent(BA.java:98)
at b4j.example.main.main(Main.java:29)
Best regards
Last edited: