jet/sqlbuilder/utils.go
2019-04-30 11:31:00 +02:00

62 lines
1 KiB
Go

package sqlbuilder
import (
"bytes"
"database/sql"
"github.com/sub0zero/go-sqlbuilder/sqlbuilder/execution"
"github.com/sub0zero/go-sqlbuilder/types"
)
func serializeExpressionList(expressions []Expression, buf *bytes.Buffer) error {
for i, value := range expressions {
if i > 0 {
buf.WriteString(", ")
}
err := value.SerializeSql(buf)
if err != nil {
return err
}
}
return nil
}
func serializeProjectionList(projections []Projection, buf *bytes.Buffer) error {
for i, value := range projections {
if i > 0 {
buf.WriteString(", ")
}
err := value.SerializeForProjection(buf)
if err != nil {
return err
}
}
return nil
}
func Query(statement Statement, db types.Db, destination interface{}) error {
query, err := statement.String()
if err != nil {
return err
}
return execution.Execute(db, query, destination)
}
func Execute(statement Statement, db types.Db) (res sql.Result, err error) {
query, err := statement.String()
if err != nil {
return
}
res, err = db.Exec(query)
return
}