首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >生锈sqlx:没有查询终结器

生锈sqlx:没有查询终结器
EN

Stack Overflow用户
提问于 2020-07-24 23:26:03
回答 1查看 1.2K关注 0票数 5

问题是当我输入这样的代码时。

代码语言:javascript
复制
let data = sqlx::query("SELECT id, name FROM test")
        .fetch_all(&pool)
        .await;

我得到了一个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-analyzer LSP告诉我,data变量的类型是std::result::Result<[type error], [type error]>,这消除了使用自动完成和类型检查的任何可能性,但运行(臭名昭著地慢)生锈编译器除外。

我使用PostgreSQL作为数据库解决方案,如果这有帮助的话。

P.S.S.env变量DATABASE_URL是在编译时设置的,并且是正确的,所以宏执行所有的编译时验证工作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-25 08:18:17

稍微浏览一下docs.rs,我发现除了fetch之外,sqlx::Query类型甚至没有终结器。至于sqlx::query_as,我正在寻找的特征是PgQueryAs,它实际上包含了fetch_allfetch_optionalfetch_one等,添加use sqlx::postgress::PgQueryAs为我解决了这个问题。

尽管如此,我仍然不知道如何评估宏以在我的IDE中获得合适的类型。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63082682

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档