// Copyright 2017 The Xorm Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package xorm // Query runs a raw sql and return records as []map[string][]byte func (session *Session) Query(sqlOrArgs ...interface{}) ([]map[string][]byte, error) { if session.isAutoClose { defer session.Close() } sqlStr, args, err := session.statement.GenQuerySQL(sqlOrArgs...) if err != nil { return nil, err } rows, err := session.queryRows(sqlStr, args...) if err != nil { return nil, err } defer rows.Close() return session.engine.scanByteMaps(rows) } // QueryString runs a raw sql and return records as []map[string]string func (session *Session) QueryString(sqlOrArgs ...interface{}) ([]map[string]string, error) { if session.isAutoClose { defer session.Close() } sqlStr, args, err := session.statement.GenQuerySQL(sqlOrArgs...) if err != nil { return nil, err } rows, err := session.queryRows(sqlStr, args...) if err != nil { return nil, err } defer rows.Close() return session.engine.ScanStringMaps(rows) } // QuerySliceString runs a raw sql and return records as [][]string func (session *Session) QuerySliceString(sqlOrArgs ...interface{}) ([][]string, error) { if session.isAutoClose { defer session.Close() } sqlStr, args, err := session.statement.GenQuerySQL(sqlOrArgs...) if err != nil { return nil, err } rows, err := session.queryRows(sqlStr, args...) if err != nil { return nil, err } defer rows.Close() return session.engine.ScanStringSlices(rows) } // QueryInterface runs a raw sql and return records as []map[string]interface{} func (session *Session) QueryInterface(sqlOrArgs ...interface{}) ([]map[string]interface{}, error) { if session.isAutoClose { defer session.Close() } sqlStr, args, err := session.statement.GenQuerySQL(sqlOrArgs...) if err != nil { return nil, err } rows, err := session.queryRows(sqlStr, args...) if err != nil { return nil, err } defer rows.Close() return session.engine.ScanInterfaceMaps(rows) }