Why it no translate correctly

I have the following code to translate dBase tables to SQL tables but it
does not work

procedure TForm1.Button1Click(Sender: TObject);
var
   i : longint;
   t : TDateTime;
begin
  T1.open;        {table dBase}

  T1.next;
  T1.next;
  T1.next;

  T := time;

  Q1.databasename := 'Agenda';
  Q1.SQL.add('insert into ExpAgenda
(matricula,nombre,paterno,materno,aux1,aux2)'+
            'values (:p1,:p2,:p3,:p4,:p5,:p6)');
  i := 0;
  while (not T1.eof) do
   begin
     inc(i);
     Q1.params[0].AsString := floattostr(T1Matricula.value);
     Q1.params[1].AsString := T1Nombres.value;
     Q1.params[2].AsString := T1Apaterno;             {this field can
contain an ? character}
     Q1.params[3].AsString := T1Amaterno;            {this field can
contain an ? character}
     Q1.params[4].AsString := 'NULL';
     Q1.params[5].AsString := 'NULL';
     Q1.execSQL;

     T1.next;
     Canvas.textout(10,10,inttostr(i));
   end;

  Showmessage(timetostr(t)+'   '+timetostr(time));
  Screen.cursor := crDefault;
end;

THE problem is when I assign ? character from dBase to SQL because SQL
put an ? character

What can I do to fix this problem ?

THANKS TO MUCH for any HELP