TQuery vs SQL Server problems

I have a complex (I thought it was simple) situation and I can't find a
proper way to do it.  May be someone can guide me through the right way.

I'm using Delphi 5 with Remote MSSQL server.  Here is my situation:

I have a DBGrid containing only 1 field from a MyTable which contains may be
25 fields.  The field that I want in the DBGrid is a descriptor field and I
want it sorted.  So, my SQL query is:

SELECT F2001,UPPER(F2001) as F2001S from MyTable ORDER BY F2001S

Here is my problem number 1:  The field in my DBGrid is F2001 and with this
SQL query, it shows capitalized.  Surprisingly enough, if I do:

SELECT F2001,UPPER(F2001) as F2001S from MyTable WHERE F2001 <> 'trash'
ORDER BY F2001S

then it's OK.  Why???

Now, problem #2:  If I want to add, delete or modify records, I must use
another TQuery otherwise, the DBGrid will be blank while performing the
task.  But by doing this, the records modified are not showed in the DBGrid.
To get them on the DBGrid, I must close and open the TQuery of the DBGrid
(which makes the DBGrid flicker (yurk)).

I wanted to use a small dataset for the DBGrid (only 1 field) to minimise
the transfer between the server and my station.  Since my table has about
700 records, I didn't want to waste the time of polling 24 fields times 700
for nothing.

 I was wondering if it would be possible to work on the cache (both TQuery
on the same one) so the DBGrid would obviously be updated instantly.  But I
would probably have my problem #1 in the way, and also the dataset would be
in read only mode because of the Query.

Any suggestion?

Regards,

Guy