Olá Marco.
Voce não informou qual banco de dados está usando.
Supondo que seja um banco relacional (Oracle ou SQL Server ou até mesmo em Access) voce pode montar um select da seguinte forma
SELECT Nome FROM Tabela WHERE Nome LIKE %MACIEL%.
No bom e velho Clipper, voce poderia escrever:
PROCEDURE NameShow()
LOCAL aNames
CLS
USE Tabela SHARED NEW
aNames := NameSearch( "MACIEL" )
If Len( aNames ) > 0
Aeval( aNames, { |e| Tabela->( DbGoTo( e ) ), QOut( Tabela->nome ) } )
Else
Alert( "Nome nao encontrado" )
Endif
Tabela->( DbCloseArea() )
RETURN
//------------------------------------------------------------------------------
FUNCTION NameSearch( cNome )
Local aRecno
Tabela->( DbGoTop() )
// se o argumento de pesquisa estiver contido no valor do campo, guarda o numero do registro num vetor
Tabela->( DbEval( { || If( cNome $ TABELA->nome, Eval( { || AAdd( aRecno, TABELA->( Recno() ) ) } ), NIL ) } ) )
RETURN aRecno
//------------------------------------------------------------------------------
Espero ter ajudado.
Abraço
AlxSts