err = row.Scan(&resourceList, resourceTypeId)
を呼び出そうとすると、次のエラーが表示されます。
列インデックス 0、名前 'ID' でのスキャン エラー: スキャンはサポートされていません。int64 型の driver.Value を *[]authService.Permission" 型に保存していますSQL は次の内容を返しますリーリー
リーリー
query の
EXEC ステートメントで SQL Server を使用しようとすると、同じクエリが正常に動作します。
ここでいくつかの問題があります。最初の
QueryRowContext
あなたの質問は、ステートメントが複数の結果を返すことを示しているため、これは使用する正しい関数ではありません (
QueryContext
の方が適切です)。2 番目の問題は、エラーに記載されているとおりです:
結果セットの最初の列は整数 (この場合はおそらく値
15
) で、これを[]Permission
にスキャンしようとしています。あなたが変わればvar resourceList []Permission
からvar resourceList int
バグは修正される予定です (ただし、2 番目のパラメーターも機能する必要があります)。この例ドキュメントを参照してください。そのコードを自分の状況に適用すると、次のような結果になります (テストされていません。正しい方向に導くためだけに): リーリー
注: 構造体 Permission
には 4 つの要素が含まれていますが、クエリは 2 つの列を返すため、他の 2 つの列にどのようにデータを入力するつもりなのか (または何をするのか) がよくわかりません。マッピングは) です。