GORM 中程序的正确使用方法是什么?

问题描述 投票:0回答:1

我使用 GORM 运行程序,但数据丢失。数据集发生变化。我将根据下面的股票结构举一个例子。 StockCode 取代了 Barcode。我对此进行了检查。当我在数据库中运行查询时,没有收到这样的错误。我不确定这是否是一个错误。除了以下用法还有其他用法吗?

type Stock struct {
    StockCode                              string
    Barcode                                string
    StockName                              string
    ProductImage                         string
}
var stock []Stock
MicroDB.Raw("exec Company_Stocks;").Scan(&stock) // I also tried the find() method
for _, v := range stock{
    fmt.Println(v.Barcode, v.ProductImage)
}
go go-gorm
1个回答
0
投票

您似乎正在尝试使用 Go 中的 GORM 从过程中获取数据。但是,您没有获得预期的数据,并且数据集中存在变化。您还提到您已经检查了 StockCode 而不是 Barcode,并且直接在数据库中运行查询时没有收到错误。

首先,确保过程

Company_Stocks
以正确的格式返回预期数据。 如果该过程返回正确的数据,您可能需要检查
Stock
结构中的字段是否正确映射到结果集中的列。确保结构中字段的名称和类型与过程返回的列匹配。

如果到目前为止一切看起来都正确,您可以尝试使用 GORM 中的

Select
方法来显式指定要从结果集中选择的列。

或者,您可以尝试使用

Find
方法而不是
Scan
:

使用前请确保

MicroDB
变量已正确初始化为 GORM DB 实例。

如果您仍然遇到问题,请提供其他详细信息,例如您正在使用的数据库、

Company_Stocks
过程的结构以及您遇到的任何相关错误消息。

© www.soinside.com 2019 - 2024. All rights reserved.