Ваш код действительно правильный, я использовал & String внутри vec .... Спасибо за ваше время.

у использовать подготовленное заявление сrusqlite, Rusqlite реализует чертуToSql заString, &str а такжекуча других типов:

extern crate rusqlite;

use rusqlite::Connection;

fn main() {
    let mut connection = Connection::open("C:\\test_db.db").unwrap();

    let mut cached_statement = connection
        .prepare_cached("SELECT ?, ?, ? FROM test")
        .unwrap();

    let vec_values = vec![
        &"test1".to_string(),
        &"test2".to_string(),
        &"test3".to_string(),
    ];

    let rows = cached_statement.query(vec_values.as_slice()).unwrap();
}

Это не компилируется с ошибкой:

error[E0308]: mismatched types
  --> src/main.rs:18:39
   |
18 |     let rows = cached_statement.query(vec_values.as_slice()).unwrap();
   |                                       ^^^^^^^^^^^^^^^^^^^^^ expected trait rusqlite::types::ToSql, found struct `std::string::String`
   |
   = note: expected type `&[&rusqlite::types::ToSql]`
              found type `&[&std::string::String]`

Ответы на вопрос(1)

Ваш ответ на вопрос