本文整理汇总了Golang中github.com/go-gorp/gorp.DbMap.Begin方法的典型用法代码示例。如果您正苦于以下问题:Golang DbMap.Begin方法的具体用法?Golang DbMap.Begin怎么用?Golang DbMap.Begin使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/go-gorp/gorp.DbMap
的用法示例。
在下文中一共展示了DbMap.Begin方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: InitAllTables
func InitAllTables(dbm *gorp.DbMap) error {
defineAllTables(dbm)
if err := dbm.CreateTablesIfNotExists(); err != nil {
return err
}
txn, err := dbm.Begin()
if err != nil {
return err
}
defer txn.Rollback()
count, err := CountRows("loglevel", "id", txn)
if err != nil {
return err
}
if count == 0 {
InitLoglevelTable(txn)
}
count, err = CountRows("utmstatus", "id", txn)
if err != nil {
return err
}
if count == 0 {
InitUtmstatusTable(txn)
}
txn.Commit()
return nil
}
示例2: getSequence
func getSequence(dbMap *gorp.DbMap) (uint64, error) {
tx, err := dbMap.Begin()
if err != nil {
return 0, err
}
defer func() {
if err != nil {
tx.Rollback()
} else {
tx.Commit()
}
}()
st, err := tx.Prepare("UPDATE seq set id = LAST_INSERT_ID(id + 1)")
if err != nil {
return 0, err
}
defer st.Close()
st.Exec()
stmt, err := tx.Prepare("SELECT LAST_INSERT_ID()")
defer stmt.Close()
var id uint64
err = stmt.QueryRow().Scan(&id)
if err != nil {
return 0, err
}
return id, nil
}
示例3: TransactionFactory
func TransactionFactory(conn *gorp.DbMap) repo.TransactionFactory {
return func() (repo.Transaction, error) {
return conn.Begin()
}
}
示例4: LoadFile
func (wfc *WebFilterCommand) LoadFile(
fname string,
dbm *gorp.DbMap) (int64, error) {
r1, _ := regexp.Compile(FILENAME_WLOG_PATTERN1)
r2, _ := regexp.Compile(FILENAME_WLOG_PATTERN2)
var dt1, dt2 time.Time
var isPresent bool
if m := r1.FindStringSubmatch(fname); m != nil {
dt1, _ = time.Parse(FILENAME_WLOG_DATE_PATTERN, m[1])
dt2, _ = time.Parse(FILENAME_WLOG_DATE_PATTERN, m[2])
isPresent = false
} else if m = r2.FindStringSubmatch(fname); m != nil {
dt1, _ = time.Parse(FILENAME_WLOG_DATE_PATTERN, m[1])
isPresent = true
} else {
fmt.Println("Skipped file:", fname)
return 0, nil
}
txn, err := dbm.Begin()
if err != nil {
return 0, err
}
defer txn.Rollback()
fileRow, err := dal.GetFileByDate(txn, dt1)
if err != nil {
return 0, err
} else if fileRow == nil {
fileRow = &models.File{
Begin: dt1,
Count: 0,
}
if !isPresent {
fileRow.End = dt2
}
err = txn.Insert(fileRow)
if err != nil {
return 0, err
}
} else if fileRow.End.Year() > 1 {
return 0, nil
}
var reader io.Reader
file, err := os.Open(fname)
if err != nil {
return 0, err
}
defer file.Close()
gz, err := gzip.NewReader(file)
if err != nil {
return 0, err
}
defer gz.Close()
reader = gz
countInitial := fileRow.Count
err = ParseFile(reader, fileRow, dbm)
if err != nil {
return 0, err
}
if !isPresent {
fileRow.End = dt2
}
txn.Update(fileRow)
txn.Commit()
return fileRow.Count - countInitial, nil
}