Después de una temporada larga sin programar estoy haciendo un nuevo programa. La base de datos que he elegido es sqlite, ya que el programa es la parte "desktop" de una apliación que he hecho para móviles android. He probado y la base de datos se puede copiar del pc al teléfono y viceversa y va bien.
Tengo una duda. En el pc uso browse añadiendo estas líneas
Code: Select all | Expand
vv:oBrw:bGoTop := { || IF( ! vv:oRs:BOF() .AND. ! vv:oRs:EOF(), vv:oRs:MoveFirst(), ) }
vv:oBrw:bGoBottom := { || IF( ! vv:oRs:BOF() .AND. ! vv:oRs:EOF(), vv:oRs:MoveLast(), ) }
vv:oBrw:bBof := { || vv:oRs:BOF() }
vv:oBrw:bEof := { || vv:oRs:EOF() }
vv:oBrw:bBookMark:= { | uBm | IF( vv:oRs:BOF() .AND. vv:oRs:EOF() , 0, IF( uBm == NIL, vv:oRs:BookMark, vv:oRs:BookMark := uBm ) ) }
vv:oBrw:bKeyNo := { | n | IF( vv:oRs:BOF() .AND. vv:oRs:EOF(), 0, IF( n == NIL, vv:oRs:AbsolutePosition, vv:oRs:AbsolutePosition := n ) ) }
vv:oBrw:bKeyCount := { || vv:oRs:RecordCount() }
vv:oBrw:SetAdo(vv:oRs)
Uso la case que hice TRecordset
El problema es que cuando cambio un registro y lo actualizo en la base de datos, tengo que hacer un "requery" en el recordset para que el browse muestre los cambios. Luego hago un refresh en el browse.
Code: Select all | Expand
vv:dAlias:save()
vv:oRs:requery()
vv:oBrw:refresh()
El problema es que el puntero del browse se va al primer registro del recorset. ¿cómo puedo hacer que el browse se vaya al registro por ejemplo id=3 en el recordset?
Muchas gracias y un saludo
Alvaro