Ao cadastrar bancos, eu adiciono o registro e ao inserir o codigo do banco ele executa uma validação através de uma função para ver se o banco já esta cadastrado, como faço um dbseek pra procurar o codigo do banco antes eu gravo a posição atual na tabela para depois voltar na posição q estava, mas esta dando um problema q ele ao executar o dbgoto(nPosRegNovo) se olho via Debug mostra EOF e BOF como .T. sendo q se executo passo a passo F8 não da o erro....
segue o código q faz a pesquisa
********************************************************************************
STATIC FUNCTION LocalizaBco(aCampos)
********************************************************************************
LOCAL nPosRegNovo := Bco->(RECNO())
IF EMPTY(aCampos[Codigo])
RETURN( .F. )
ENDIF
// Aki se olho via debug esta BOF YES
IF Bco->( DBSEEK( aCampos[Codigo] ) ) .AND. nPosRegNovo != Bco->( RECNO() )
Alert("Codigo ja cadastrado!")
Bco->( DBGOTO(nPosRegNovo) )
RETURN( .F. )
ENDIF
// Após o Seek esta BOF NO e EOF YES
Bco->( DBGOTO(nPosRegNovo) )
//Se eu olhar exatamente neste ponto após o Dbgoto ele fica BOF e EOF como YES ai retorna faço o cadastro mas ao confirmar na hora de gravar com um //commit da erro base/1081 de SR_WORKAREA:(0483)
// SR_WORKAREA:(3168)
RETURN( .T. )
O Interessante q se eu fizer passo a passo pelo DEBUG (F8) não da o problema, ele nao fica BOF e EOF como YES q não tem lógica, pois como eu estava num registro novo via APPEND BLANK após o Seek ficou EOF, porém após o GOTO(Reg) ele tem q voltar para o registro q estava e não ficar EOF yes
Agora se eu colocar um ALTD() após o BCO->( dbgoto(nPosRegNovo)) eu consigo observar q fica BOF e EOF como YES, agora se eu coloco um ALTD() antes do goto e faço via F8 trabalha corretamente após o EOF yes o registro é posicionado novamente no registro novo q esta sendo cadastrado.
[]´s