Android Question [SOLVED] What is wrong with this query ?

incendio

Well-Known Member
Licensed User
Longtime User
Hi guys,

I have this codes
B4X:
Dim qry As String = "SELECT o.DT, o.FRM_N, " & _
                    "FROM T_IN_OT2 i " & _
                    "JOIN T_IN_OT1 o ON o.ID = i.ID_IN_OT1 " & _
                    "JOIN M_TRS_TYP mt ON mt.ID = o.ID_TRS_TYP " & _
                    "JOIN M_FNGD f ON f.ID = i.ID_GD " & _
                    "WHERE o.DT BETWEEN ? AND ? " & _
                    "AND mt.ID = ? " & _
"AND ( ? = -1 OR f.ID = ? ) " &_
                    "ORDER BY o.DT, o.FRM_N, f.ID"

Private db As Cursor
db = SQLTbl.ExecQuery2(qry,Array As String("2025-10-01", "2025-12-31", 41,-1,-1))

It returns empty result

But if query change to this
B4X:
Dim qry As String = "SELECT o.DT, o.FRM_N, " & _
                    "FROM T_IN_OT2 i " & _
                    "JOIN T_IN_OT1 o ON o.ID = i.ID_IN_OT1 " & _
                    "JOIN M_TRS_TYP mt ON mt.ID = o.ID_TRS_TYP " & _
                    "JOIN M_FNGD f ON f.ID = i.ID_GD " & _
                    "WHERE o.DT BETWEEN ? AND ? " & _
                    "AND mt.ID = ? " & _

                    "ORDER BY o.DT, o.FRM_N, f.ID"

Private db As Cursor
db = SQLTbl.ExecQuery2(qry,Array As String("2025-10-01", "2025-12-31",41))

It returns data.

What is wrong with my code?
 
Last edited:

incendio

Well-Known Member
Licensed User
Longtime User
Solved it.

Here is for reference to others, change query and its arguments to this

B4X:
Dim qry As String = "SELECT o.DT, o.FRM_N, " & _
                    "FROM T_IN_OT2 i " & _
                    "JOIN T_IN_OT1 o ON o.ID = i.ID_IN_OT1 " & _
                    "JOIN M_TRS_TYP mt ON mt.ID = o.ID_TRS_TYP " & _
                    "JOIN M_FNGD f ON f.ID = i.ID_GD " & _
                    "WHERE o.DT BETWEEN ? AND ? " & _
                    "AND mt.ID = ? " & _
"AND ( ? = '-1' OR f.ID = ? ) " &_
                    "ORDER BY o.DT, o.FRM_N, f.ID"

Private db As Cursor
db = SQLTbl.ExecQuery2(qry,Array As String("2025-10-01", "2025-12-31", 41,"-1",-1))
 
Upvote 0

Erel

B4X founder
Staff member
Licensed User
Longtime User
Why don't you use smart strings???

B4X:
Dim qry As String = $"SELECT o.DT, o.FRM_N,
                    FROM T_IN_OT2 i
                    JOIN T_IN_OT1 o ON o.ID = i.ID_IN_OT1
                    JOIN M_TRS_TYP mt ON mt.ID = o.ID_TRS_TYP
                    JOIN M_FNGD f ON f.ID = i.ID_GD
                    WHERE o.DT BETWEEN ? AND ?
                   AND mt.ID = ?
                   AND ( ? = '-1' OR f.ID = ? )
                    "ORDER BY o.DT, o.FRM_N, f.ID"$
 
Upvote 0
Top