Restricted Numbers of data with TQuery

I'm developing a C/S Application with Delphi4 and MS SQL 7.0
I want to restrict the result sets prepared by TQuery with a number of rows.
For example i will select some orders with "select * from orders where
date>='01.05.1999' order by date"
but i want only first 30 orders no mather if there is more.
And perhaps if possible, the result data will be seen on tdbgrid with pages
that have 30 records for each page.
When the user requests for the next page the data will be queried from
I don't want to query all of the data from server.

How can i restrict the number of data ?
How can i make pages like i defined ?

Thanks ...