Конструкции prepare-bindValue-exec и QString-agr-exec в общем случае различны. Если СУБД поддерживает связываемые переменные (функция QSqlDriver::hasFeature(QSqlDriver::PreparedQueries) вернет true), то в некоторых случаях prepare-bindValue-exec будет предпочтительней, а именно - когда очень часто используется, по сути, один и тот же запрос, но с разными подставляемыми данными (тот же INSERT, например). При использовании связываемых переменных запрос компилируется один раз, а затем план его выполнения запоминается в библиотечном кэше, из которого его можно выбрать для повторного выполнения (с новыми подставляемыми значениями). Да и для АБД статистику проще собирать.
+1
Qt - не причём. Библиотека мускульная....