Table does not support this operation (Refresh)

Hello all.  I am working on a simple application that uses a TQuery to access a
table in a Microsoft SQL-Server 6.0 database.  When the user inserts a new
record and posts it, this new record seems to take the place of whichever record
was active before the insertion.  Can someone explain why this is happening?

In attempt to remedy this, I defined an AfterPost event for the Query in which
the Refresh method of the Query is called.  This produces an EDBEngineError with
the message "Table does not support this operation because it is not uniquely
indexed."  Does anyone know what this means?  How can I fix it?

If I replace the Query.Refresh; with Query.Close; Query.Open; then the post
works fine, and all the records are visible in the dataset.  However, I think
there must be a huge compromise in efficiency from this approach.

Any suggestions?