- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我知道问题出在哪里,当我尝试从我的数据库调用中扫描字段时,我没有提供指针地址 - 但是在这种情况下,我不太确定如何解决它。
我有一个看起来像这样的结构:
type ItemsRequest struct {
Sku string `json:"sku"`
Name string `json:"name"`
Barcode string `json:"barcode,omitempty"`
Category struct {
ID string `json:"id,omitempty"`
Name string `json:"name,omitempty"`
Subcategories []interface{} `json:"subcategories,omitempty"`
CategoryPosition int `json:"categoryPosition,omitempty"`
ResourceURI string `json:"resource_uri,omitempty"`
} `json:"category,omitempty"`
CategoryPosition int `json:"categoryPosition,omitempty"`
LongDesc string `json:"longDesc,omitempty"`
MinQty int `json:"minQty,omitempty"`
MultQty int `json:"multQty,omitempty"`
UnitPrice string `json:"unitPrice,omitempty"`
ImageURLs []string `json:"imageURLs,omitempty"`
Variants []interface{} `json:"variants,omitempty"`
AdditionalPrices map[string]string `json:"additionalPrices,omitempty"`
audtdatetime int
}
AdditionalPrices
字段用于表示一个值对象,例如:
{
'UK': "12.34",
'AU': "14.00"
}
因此,我非常有信心该字段的 map[string]string
类型是正确的...
我正在检索数据以从我的数据库中填充此结构,然后尝试将结果扫描到此结构的实例中。在我的查询中,我有预定义数量的列,我想为其填充 AdditionalPrices
。
因此我从这个开始:
func getItemsFromDB() []*ItemsRequest {
rows, err := bcdataDBConnection.Query(`
SELECT *
FROM vProducts
WHERE max_audit_date_time > @AuditTime
`, sql.Named("AUDITTIME", 2016101412000000))
if err != nil {
log.Fatal("There was an issue with the query for items: ", err)
}
defer rows.Close()
var items []*ItemsRequest
for rows.Next() {
var item = &ItemsRequest{}
err := rows.Scan(
&item.Sku,
&item.Name,
&item.Category.ID,
&item.Category.Name,
&item.Category.CategoryPosition,
&item.LongDesc,
&item.Barcode,
&item.UnitPrice,
&item.MinQty,
&item.MultQty,
&item.CategoryPosition,
&item.AdditionalPrices["NZBASE"],
&item.AdditionalPrices["NZWWW"],
&item.AdditionalPrices["MMCMFR"],
&item.AdditionalPrices["MMBASE"],
&item.AdditionalPrices["AUBASE"],
&item.AdditionalPrices["MMCMAU"],
&item.AdditionalPrices["AUDSA"],
&item.AdditionalPrices["AUDVIC"],
&item.AdditionalPrices["AUDWWW"],
&item.audtdatetime,
)
if err != nil {
log.Fatal("Scan error: ", err)
}
items = append(items, item)
}
return items
}
但是这似乎不是正确的语法,所以我将其更改为:
func getItemsFromDB() []*ItemsRequest {
rows, err := bcdataDBConnection.Query(`
SELECT *
FROM vHandshakeProducts
WHERE max_audit_date_time > @AuditTime
`, sql.Named("AUDITTIME", 2016101412000000))
if err != nil {
log.Fatal("There was an issue with the query for items: ", err)
}
defer rows.Close()
var items []*ItemsRequest
for rows.Next() {
var item = &ItemsRequest{}
err := rows.Scan(
&item.Sku,
&item.Name,
&item.Category.ID,
&item.Category.Name,
&item.Category.CategoryPosition,
&item.LongDesc,
&item.Barcode,
&item.UnitPrice,
&item.MinQty,
&item.MultQty,
&item.CategoryPosition,
item.AdditionalPrices["NZBASE"],
item.AdditionalPrices["NZWWW"],
item.AdditionalPrices["MMCMFR"],
item.AdditionalPrices["MMBASE"],
item.AdditionalPrices["AUBASE"],
item.AdditionalPrices["MMCMAU"],
item.AdditionalPrices["AUDSA"],
item.AdditionalPrices["AUDVIC"],
item.AdditionalPrices["AUDWWW"],
&item.audtdatetime,
)
if err != nil {
log.Fatal("Scan error: ", err)
}
items = append(items, item)
}
return items
}
我的 IDE 更喜欢哪个,但是在运行它时出现错误:
2018/01/15 15:35:06 Scan error: sql: Scan error on column index 11: destination not a pointer
所以在这一点上,我不太确定如何从我的数据库调用中填充 AdditionalPrices
的值。
我需要做什么才能使用从数据库中获取的值填充 AdditionalPrices
映射?根据我代码中的键,我已经知道要为其分配值的映射键。
最佳答案
row.Scan 用于扫描数据库行中的字段。它无法以嵌套方式扫描字段的值。
所以只要说&item.AdditionalPrices
扫描每一行的additionalPrices
字段,如下:
err := rows.Scan(
&item.Sku,
&item.Name,
&item.Category.ID,
&item.Category.Name,
&item.Category.CategoryPosition,
&item.LongDesc,
&item.Barcode,
&item.UnitPrice,
&item.MinQty,
&item.MultQty,
&item.CategoryPosition,
&item.AdditionalPrices,
&item.audtdatetime,
)
关于pointers - 扫描错误 : sql: Scan error on column index 11: destination not a pointer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48257544/
这个问题已经有答案了: 已关闭14 年前。 ** 重复:What's the difference between X = X++; vs X++;? ** 所以,即使我知道你永远不会在代码中真正做到
我在一本C语言的书上找到了这个例子。此代码转换输入数字基数并将其存储在数组中。 #include int main(void) { const char base_digits[16] =
尝试使用“pdf_dart”库保存 pdf 时遇到问题。 我认为问题与我从互联网下载以尝试附加到 pdf 的图像有关,但我不确定它是什么。 代码 import 'dart:io'; import 'p
我的 Apache 服务器曾经可以正常工作,但它随机开始对几乎每个目录发出 403 错误。两个目录仍然有效,我怎样才能使/srv/www/htdocs 中的所有目录正常工作? 我查看了两个可用目录的权
这些索引到 PHP 数组的方法之间有什么区别(如果有的话): $array[$index] $array["$index"] $array["{$index}"] 我对性能和功能上的差异都感兴趣。 更
我有一个简单的结构,我想为其实现 Index,但作为 Rust 的新手,我在借用检查器方面遇到了很多麻烦。我的结构非常简单,我想让它存储一个开始值和步长值,然后当被 usize 索引时它应该返回 st
我对 MarkLogic 中的 element-range-index 和 field-range-index 感到困惑。 请借助示例来解释差异。 最佳答案 这两个都是标量索引:特定类型的基于值的排序
我对 MarkLogic 中的 element-range-index 和 field-range-index 感到困惑。 请借助示例来解释差异。 最佳答案 这两个都是标量索引:特定类型的基于值的排序
所以我有一个 df,我在其中提取一个值以将其存储在另一个 df 中: import pandas as pd # Create data set d = {'foo':[100, 111, 222],
我有一个由 codeigniter 编写的网站,我已经通过 htaccess 从地址中删除了 index.php RewriteCond $1 !^(index\.php|resources|robo
谁能告诉我这两者有什么区别: ALTER TABLE x1 ADD INDEX(a); ALTER TABLE x1 ADD INDEX(b); 和 ALTER TABLE x1 ADD INDEX(
我在 Firefox 和其他浏览器上遇到嵌套 z-index 的问题,我有一个 div,z-index 为 30000,位于 label 下方> zindex 为 9000。我认为这是由 z-inde
Link to the function image编写了一个函数来查找中枢元素(起始/最低)的索引 排序和旋转数组。我解决了这个问题并正在检查 边缘情况,它甚至适用于索引为零的情况。任何人都可以 解
我正在尝试运行有关成人人口普查数据的示例代码。当我运行这段代码时: X_train, X_test, y_train, y_test = cross_validation.train_test_spl
我最近将我的 index.html 更改为 index.php - 我希望能够进行重定向以反射(reflect)这一点,然后还进行重写以强制 foo.com/index.php 成为 foo.com/
我最近将我的 index.html 更改为 index.php - 我希望能够进行重定向以反射(reflect)这一点,然后还进行重写以强制 foo.com/index.php 成为 foo.com/
我有一个用户定义的函数,如下所示:- def genre(option,option_type,*limit): option_based = rank_data.loc[rank_data[
我有两个巨大的数据框我正在合并它们,但我不想有重复的列,因此我通过减去它们来选择列: cols_to_use=df_fin.columns-df_peers.columns.difference(['
感谢您从现在开始的回答, 我是React Native的新手,我想做一个跨平台的应用所以我创建了index.js: import React from 'react'; import { Co
我知道 not_analyzed 是什么意思。简而言之,该字段不会被指定的分析器标记化。 然而,什么是 NO_NORMS 方法?我看到了文档,但请用简单的英语解释我。什么是索引时间字段和文档提升和字段
我是一名优秀的程序员,十分优秀!