4

基本的に、クエリの結果の構造がどうなるかを事前に知らなくても、データベースにクエリを実行して、このような構造を返したいと思います (json-y)

// Rows
[
   // Row 1
   [
      { ColumnName: "id", Value: 1, Type: int },
      { ColumnName: "name", Value: "batman", Type: string },
      ...
   ],

   // Row 2
   [
      { ColumnName: "id", Value: 2, Type: int },
      { ColumnName: "name", Value: "superman", Type: string },
      ...
   ]
]

golangでパッケージデータベース/SQLを使用して列のタイプを取得する方法はありますか?

私がやりたいことは

  1. interface{} の配列を Column() のサイズにします。
  2. 次に、各列のタイプを決定し、
  3. 次に、その型へのポインターで配列を埋めます。
  4. 次に、配列を Scan() に渡します

これはsqlxのこのコード例に少し似ていますが、最初にデータが入力される Struct を知らずに.

4

2 に答える 2

0

データベース/SQLを使用していますか? いいえ(私の知る限り)。

ただし、このコードを任意のクエリに使用できます。json パッケージからは、json.Marshall()リフレクションを使用して値を出力する正しい方法を決定するため、次のような構造にすることができます。

type Column struct {
    ColumnName  string
    ColumnValue interface{}
    ColumnType  string
}

次にreflect.TypeOf(someVariable).String()、ColumnType の型を取得するために使用します。

于 2014-06-03T14:50:19.523 に答える