Lin*_*nk0 6 postgresql rust rust-sqlx
问题是当我输入这样的代码时。
let data = sqlx::query("SELECT id, name FROM test")
.fetch_all(&pool)
.await;
Run Code Online (Sandbox Code Playgroud)
我收到一个no method named `fetch_all` found for struct `sqlx_core::query::Query<'_, _>` in the current scope错误。以下为官方入门自述文件。这也适用于该query_as方法。我怀疑由于某种原因编译器没有“看到”sqlx::Query特征方法,但我不知道如何将它们纳入范围。
虽然当我使用宏时sqlx::query!,.fetch_all确实存在。
另外,还有一个不便之处,rust-analyzerLSP 告诉我变量的类型data是std::result::Result<[type error], [type error]>,这消除了使用自动完成和类型检查的任何可能性,除了运行(众所周知的慢)rust 编译器。
PS 我使用 PostgreSQL 作为数据库解决方案,如果这可能有帮助的话。
PSS 环境变量 DATABASE_URL 在编译时设置并且是正确的,因此宏会执行所有编译时验证工作。
稍微浏览一下 docs.rs,我发现 typesqlx::Query甚至没有除了fetch. 至于sqlx::query_as,我正在寻找的特征被称为PgQueryAs,它实际上包含fetch_all、fetch_optional、fetch_one等。添加use sqlx::postgress::PgQueryAs解决了我的问题。
尽管如此,我仍然不知道评估宏以在 IDE 中获得合适类型的解决方案。
| 归档时间: |
|
| 查看次数: |
1756 次 |
| 最近记录: |