Android Question Not working CreateCallStatement and ExecCall in JdbcSQL

gacar

Active Member
I am getting error when i use CreateCallStatement in JdbcSQL. I am calling "dbo.MobilMisafirOlustur" stored procedure with CreateCallStatement.

B4X:
Private Sub CreateUser
    Dim arr As List
    Dim Ad As String = "[email protected]"
    arr.Initialize
    arr.Add(Ad)
    'I am calling "dbo.MobilMisafirOlustur" Stored Procedure with "[email protected]" argument.
    Dim obj As Object = SQL.CreateCallStatement("dbo.MobilMisafirOlustur",arr) '<<<<<< Here i am getting "java.sql.SQLException: Invalid parameter index 1." error.
    Dim rs As JdbcResultSet= SQL.ExecCall(obj)
    Log(rs)
End Sub

My Error code is

B4X:
Error occurred on line: 166 (B4XPageSohbet)
java.sql.SQLException: Invalid parameter index 1.
    at net.sourceforge.jtds.jdbc.JtdsPreparedStatement.getParameter(JtdsPreparedStatement.java:561)
    at net.sourceforge.jtds.jdbc.JtdsPreparedStatement.setParameter(JtdsPreparedStatement.java:630)
    at net.sourceforge.jtds.jdbc.JtdsPreparedStatement.setObjectBase(JtdsPreparedStatement.java:616)
    at net.sourceforge.jtds.jdbc.JtdsPreparedStatement.setObject(JtdsPreparedStatement.java:907)
    at anywheresoftware.b4j.objects.SQL.CreateCallStatement(SQL.java:355)
    at java.lang.reflect.Method.invoke(Native Method)
    at anywheresoftware.b4a.shell.Shell.runMethod(Shell.java:732)
    at anywheresoftware.b4a.shell.Shell.raiseEventImpl(Shell.java:348)
    at anywheresoftware.b4a.shell.Shell.raiseEvent(Shell.java:255)
    at java.lang.reflect.Method.invoke(Native Method)
    at anywheresoftware.b4a.ShellBA.raiseEvent2(ShellBA.java:144)
    at anywheresoftware.b4a.debug.Debug.delegate(Debug.java:262)
    at DemirHaber.Mobile.b4xpagesohbet._misafirolustur(b4xpagesohbet.java:461)
    at DemirHaber.Mobile.b4xpagesohbet._buttonmisafirgiris_click(b4xpagesohbet.java:443)
    at java.lang.reflect.Method.invoke(Native Method)
    at anywheresoftware.b4a.shell.Shell.runMethod(Shell.java:732)
    at anywheresoftware.b4a.shell.Shell.raiseEventImpl(Shell.java:351)
    at anywheresoftware.b4a.shell.Shell.raiseEvent(Shell.java:255)
    at java.lang.reflect.Method.invoke(Native Method)
    at anywheresoftware.b4a.ShellBA.raiseEvent2(ShellBA.java:144)
    at anywheresoftware.b4a.BA.raiseEvent(BA.java:193)
    at anywheresoftware.b4a.objects.ViewWrapper$1.onClick(ViewWrapper.java:80)
    at android.view.View.performClick(View.java:5637)
    at android.view.View$PerformClick.run(View.java:22429)
    at android.os.Handler.handleCallback(Handler.java:751)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:154)
    at android.app.ActivityThread.main(ActivityThread.java:6161)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:892)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:782)
 
Solution
I found solution, i should put (?) after stored procedure.

Change this code
B4X:
 Dim obj As Object = SQL.CreateCallStatement("dbo.MobilMisafirOlustur",arr)
with this
B4X:
 Dim obj As Object = SQL.CreateCallStatement("dbo.MobilMisafirOlustur(?)",arr)
and now working.

gacar

Active Member
I found solution, i should put (?) after stored procedure.

Change this code
B4X:
 Dim obj As Object = SQL.CreateCallStatement("dbo.MobilMisafirOlustur",arr)
with this
B4X:
 Dim obj As Object = SQL.CreateCallStatement("dbo.MobilMisafirOlustur(?)",arr)
and now working.
 
Upvote 0
Solution
Top