package core

import (
	"github.com/linlexing/dbx/ddb"

	"database/sql"
)

func GetOption(db ddb.DB, name string) (rev string) {
	err := db.QueryRow("select value from options where name=?", name).Scan(&rev)
	//空结果不出错
	if err == sql.ErrNoRows {
		return
	}
	if err != nil {
		LOG.Panic(err)
	}
	return
}
func SetOption(db ddb.DB, name, value string) {
	if len(value) == 0 {
		if _, err := db.Exec("delete from options where name=?", name); err != nil {
			LOG.Panic(err)
		}
		return
	}
	if sr, err := db.Exec("update options set value=? where name=?", value, name); err != nil {
		LOG.Panic(err)
	} else if ic, err := sr.RowsAffected(); err != nil {
		LOG.Panic(err)
	} else if ic == 0 {
		if _, err := db.Exec("insert into options(name,value)values(?,?)", name, value); err != nil {
			LOG.Panic(err)
		}
	}
}
func GetOptionDef(db ddb.DB, name string, defValue string) (rev string) {
	rev = GetOption(db, name)
	if len(rev) == 0 {
		rev = defValue
	}
	return
}
