def update_Q_data(q_num, text, author="DASymposium", year=DEFAULT_YEAR):
    "問題データを変更する"
    # 問題データの内容チェック
    (size, line_num, line_mat, msg, ok) = numberlink.read_input_data(text)
    if not ok:
        return (False, "Error: syntax error in Q data\n"+msg, None, None)

    text2 = numberlink.generate_Q_data(size, line_num, line_mat)
    # 既存のエンティティを取り出す
    res = get_user_Q_data(q_num, author, year)
    if res is None:
        num = 0
    else:
        num = 1
        res.text = text2
        res.rows = size[1]
        res.cols = size[0]
        res.linenum = line_num
        res.put()
    return (True, num, size, line_num)