' Procedimiento para localizar fácilemente las diferencias entre dos tablas pudiendo definir el campo/campos por los que realizar las validaciones
Private Sub CompararTablasV2(t1 As B4XTable, t2 As B4XTable, fields As List)
B4XTableSelections1.Clear
Dim nRow, nField As Int
Dim Encontrado As Boolean
' Obtengo todos los registros de la tabla "origen"
Dim rs1 As ResultSet = t1.sql1.ExecQuery("select * from data")
nRow = 0
' Recorro todas las filas de la tabla origen para buscarlas en la t2 y si no las encuentro, entonces las resalto para localizar más fácilmente las diferencias...
Do While rs1.NextRow
nRow = nRow +1
Dim sql As String
'Construyo la parte del where del sql recorriendo todos los campos que se pasaron como parámetro
For nField = 0 To fields.Size-1
If sql.Length > 0 Then sql = sql & " and "
sql = sql & t2.GetColumn(fields.get(nField)).SQLID & "= '" & rs1.GetString(t1.GetColumn(fields.get(nField)).SQLID) & "'"
Next
' Ahora construyo el resto del sql
sql = "select * from data where " & sql
' Lo lanzo...
Dim rs2 As ResultSet = t2.sql1.ExecQuery(sql)
' Y si me devuelve registros es que lo encontré
Encontrado = rs2.NextRow
' Si no lo encontré, entonces es cuando resalto la fila correspondiente...
If Not(Encontrado) Then B4XTableSelections1.CellClicked(fields.get(0).As(String), nRow)
Loop
End Sub