here is the code from the button click which is causing problems, if anyone wants full code just shout

im getting an index 0 error if anyone can help that would be great
procedure TMain.Button_LvlUpClick(Sender: TObject);
var
Calc1 :Integer;
Calc2 :Integer;
begin
FirstRun := False;
Calc1 := 0;
Calc2 := 0;
OrderID:= SelectedID;
EUorUS:= Grid.Fields[1].AsString;
ServerName := Grid.Fields[2].AsString;
CharName:= Grid.Fields[3].AsString;
CharClass:= Grid.Fields[4].AsString;
StartLevel:= IntToStr(Grid.Fields[5].AsInteger);
EndLevel := IntToStr(Grid.Fields[6].AsInteger);
CurrentLevel := (Grid.Fields[7].AsInteger);
Progress:= IntToStr(Grid.Fields[8].AsInteger);
Handler:= Grid.Fields[9].AsString;
CurrentLevel:= CurrentLevel + 1;
Calc1:= StrToInt(EndLevel) - StrToInt(StartLevel);
Calc2:= (StrToInt(Progress) - (Calc1) - 1)*-1;
Progress:= IntToStr(Calc2);
ADOQuery1.Close;
ADOQuery1.Parameters.Clear;
ADOQuery1.Parameters[0].Value := Progress;
ADOQuery1.Parameters[1].Value := CurrentLevel;
ADOQuery1.Parameters[2].Value := OrderID;
ADOQuery1.SQL[0] := 'INSERT INTO Orders (Progress, CurrentLevel) VALUES(:Progress, :CurrentLevel) WHERE OrderID = :OrderID';
ADOQuery1.ExecSQL;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT Orders.OrderID, Orders.[EU/US], Orders.ServerName, Orders.CharName, Orders.CharClass, Orders.StartLevel, Orders.EndLevel, Orders.CurrentLevel, Orders.Progress, Orders.Handler FROM Orders WHERE Orders.OrderID = :OrderID');
ADOQuery1.Open;
end;