Accessing Database data from DrawCell Method of NON data aware string grid

Hi there,
   (Don't know if this is better suited being posted in the db newsgroup but
since it's more the drawcell routine I'm concerned about I thought I'd try
here)

I've got a string grid with a whopping chunk of code in it's OnDrawCell
event that reads in a record from a database then depending on the data
returned draws that box in a particular manner. I use a setrange command and
the current row of the grid to select the datarecord in question. This works
ok so far and looks something like this (A small chunkette for your
pleasure!)

If Not (gdSelected in State) Then
      begin
  Canvas.Font.Style := DaySchedGrid.Canvas.Font.Style + [ fsItalic ] ;
  YOffSet := Rect.Top + ( ( Rect.Bottom - Rect.Top - THeight ) DIV 2 ) ; //
center text vertically
  Canvas.Brush.Color := ClYellow ;
  Canvas.FillRect ( Rect ) ;

  With Datamodule1.MainTable Do Begin
  SetRange ( [ DiaryNumber, SelectedDate,Arow] , [ DiaryNumber,
SelectedDate,Arow] ) ;

  Datamodule1.MainTable.First;
  TextString := FieldByName ('JobNo').AsString+', '+
         FieldByName ('Custref').AsString+', '+
         FieldByName ('Town').AsString;
  Canvas.TextOut ( Rect.Left + 5, YOffSet, TextString ) ;
  End
  ...
  ...

The Problem is this, My Database has two fields in particular I wish to use,
two Integer fields, Start and Finish. These two integer values correspond
with the rows of the grid (Which represent time slots) . The Above example
works ok for 1 row per record but in this case a start value of say 2 and
and a finish value of say 6 will represent 5 rows. But for the life of me I
can't change the above routine to fill in the same data to all 5 rows.. Just
the 1st occurance! Hope you follow what I'm saying here. Any Ideas?
Suggestions? Better way of achieveing what I want to do ?

All suggestions greatfully appreciated.