Я не на 100% уверен, что вы хотите, но этот код позволит вам иметь переменную, которая может содержать разные имена таблиц, помещенные в запрос
char sBuffer [1024];
char sQueryTable[] = "tableu";
sprintf(sBuffer , "INSERT INTO %s (village, weight, diet, age) VALUES (:village, :weight, :diet, :age)", sQueryTable);
query.prepare(sBuffer);
Читать о sprinft и форматировании строк здесь
Примечание: вы всегда можете также использовать std :: strings и объединить строку вместе из переменной, содержащей имя таблицы и остальную часть строки