示例#1
0
文件: zzpost.go 项目: oov/sqruct
func (t *Post) SelectTag(db sqruct.DB) ([]Tag, []PostTag, error) {
	b, relTbl, _ := zzPost{}.SelectBuilderForTag()
	sql, args := b.Where(
		q.Eq(relTbl.PostID(), t.ID),
	).ToSQL()
	r, err := db.Query(sql, args...)
	if err != nil {
		return nil, nil, err
	}
	defer r.Close()

	ot, rt := []Tag{}, []PostTag{}
	for r.Next() {
		var oe Tag
		var re PostTag
		if err = r.Scan(append(zzPostTag{}.Pointers(&re), zzTag{}.Pointers(&oe)...)...); err != nil {
			return nil, nil, err
		}
		ot, rt = append(ot, oe), append(rt, re)
	}
	if err = r.Err(); err != nil {
		return nil, nil, err
	}
	return ot, rt, nil
}
示例#2
0
文件: zzaccount.go 项目: oov/sqruct
func (t *Account) Delete(db sqruct.DB) error {
	b, tbl := zzAccount{}.DeleteBuilder()
	sql, args := b.Where(
		q.Eq(tbl.ID(), t.ID),
	).ToSQL()
	_, err := db.Exec(sql, args...)
	return err
}
示例#3
0
文件: zzpost.go 项目: oov/sqruct
func (t *Post) Update(db sqruct.DB) error {
	b, tbl := zzPost{}.UpdateBuilder(t)
	sql, args := b.Where(
		q.Eq(tbl.ID(), t.ID),
	).ToSQL()
	_, err := db.Exec(sql, args...)
	return err
}
示例#4
0
文件: zzposttag.go 项目: oov/sqruct
func (t *PostTag) Insert(db sqruct.DB) error {

	b, _ := zzPostTag{}.InsertBuilder(t)
	sql, args := b.ToSQL()
	_, err := db.Exec(sql, args...)
	return err

}
示例#5
0
文件: zzposttag.go 项目: oov/sqruct
func (t *PostTag) Delete(db sqruct.DB) error {
	b, tbl := zzPostTag{}.DeleteBuilder()
	sql, args := b.Where(
		q.Eq(tbl.PostID(), t.PostID),
		q.Eq(tbl.TagID(), t.TagID),
	).ToSQL()
	_, err := db.Exec(sql, args...)
	return err
}
示例#6
0
文件: zzpost.go 项目: oov/sqruct
func (t *Post) GetAccount(db sqruct.DB) (*Account, error) {
	b, tbl := zzAccount{}.SelectBuilder()
	sql, args := b.Where(
		q.Eq(tbl.ID(), t.AccountID),
	).ToSQL()
	var ot Account
	if err := db.QueryRow(sql, args...).Scan(zzAccount{}.Pointers(&ot)...); err != nil {
		return nil, err
	}
	return &ot, nil
}
示例#7
0
文件: zzposttag.go 项目: oov/sqruct
func (t *PostTag) GetTag(db sqruct.DB) (*Tag, error) {
	b, tbl := zzTag{}.SelectBuilder()
	sql, args := b.Where(
		q.Eq(tbl.ID(), t.TagID),
	).ToSQL()
	var ot Tag
	if err := db.QueryRow(sql, args...).Scan(zzTag{}.Pointers(&ot)...); err != nil {
		return nil, err
	}
	return &ot, nil
}
示例#8
0
文件: zzaccount.go 项目: oov/sqruct
func GetAccount(db sqruct.DB, id int64) (*Account, error) {
	b, tbl := zzAccount{}.SelectBuilder()
	sql, args := b.Where(
		q.Eq(tbl.ID(), id),
	).ToSQL()
	var t Account
	err := db.QueryRow(sql, args...).Scan(zzAccount{}.Pointers(&t)...)
	if err != nil {
		return nil, err
	}
	return &t, nil
}
示例#9
0
文件: zzposttag.go 项目: oov/sqruct
func GetPostTag(db sqruct.DB, postID int64, tagID int64) (*PostTag, error) {
	b, tbl := zzPostTag{}.SelectBuilder()
	sql, args := b.Where(
		q.Eq(tbl.PostID(), postID),
		q.Eq(tbl.TagID(), tagID),
	).ToSQL()
	var t PostTag
	err := db.QueryRow(sql, args...).Scan(zzPostTag{}.Pointers(&t)...)
	if err != nil {
		return nil, err
	}
	return &t, nil
}
示例#10
0
文件: zzaccount.go 项目: oov/sqruct
func (t *Account) Insert(db sqruct.DB) error {

	b, tbl := zzAccount{}.InsertBuilder(t)
	if !sqruct.IsZero(t.ID) {
		sql, args := b.Set(tbl.ID(), t.ID).ToSQL()
		_, err := db.Exec(sql, args...)
		return err
	}

	sql, args := b.ToSQL()
	r, err := db.Exec(sql, args...)
	if err != nil {
		return err
	}
	var i int64
	if i, err = r.LastInsertId(); err != nil {
		return err
	}

	t.ID = i
	return nil

}
示例#11
0
文件: zzaccount.go 项目: oov/sqruct
func (t *Account) SelectPost(db sqruct.DB) ([]Post, error) {
	b, tbl := zzPost{}.SelectBuilder()
	sql, args := b.Where(
		q.Eq(tbl.AccountID(), t.ID),
	).ToSQL()
	r, err := db.Query(sql, args...)
	if err != nil {
		return nil, err
	}
	defer r.Close()

	ot := []Post{}
	for r.Next() {
		var e Post
		if err = r.Scan(zzPost{}.Pointers(&e)...); err != nil {
			return nil, err
		}
		ot = append(ot, e)
	}
	if err = r.Err(); err != nil {
		return nil, err
	}
	return ot, nil
}