nowayout

第 441 号会员 /

回复了 shook 创建的主题: stmt.Exec()能不能用数组做为传入参数?

func ExecSqlNonRst(query string, cond ...interface{}) error {
    db, err := sql.Open(Config["dbdriver"], ConnectString)
    if err != nil {
        fmt.Fprintf(os.Stdout, "%s sql.Open Error: %s\n", time.Now().Format("2006-01-02 15:04:05.000"), err)
        panic(err)
    }
    defer db.Close()

    stmt, err := db.Prepare(query)
    if err != nil {
        fmt.Fprintf(os.Stdout, "%s db.Prepare Error: %s\n", time.Now().Format("2006-01-02 15:04:05.000"), err)
        panic(err)
    }
    defer stmt.Close()

    _, err = stmt.Exec(cond...)
    if err != nil {
        fmt.Fprintf(os.Stdout, "%s stmt.Exec Error: %s\n", time.Now().Format("2006-01-02 15:04:05.000"), err)
        panic(err)
    }

    return nil
}

调用的时候

common.ExecSqlNonRst(`update table set regtime=now(),col1=$1,col2=$2 where id=$3;`, val , val2, val3)

回复了 创建的主题:

@missdeer 咳,你这人没点幽默精神

回复了 创建的主题:

首先要确定接了这个活,是不是能保证我以后买彩票都能中大奖

回复了 dxhdxh2k 创建的主题: go的模板问题?

body, _ := ioutil.ReadAll(rc)
fmt.Println(string(body))
_, err := template.New("").Parse(string(body))
fmt.Printf("err: %v\n", err)

回复了 mtazrael 创建的主题: 关于GOLANG操作MSSQL中文编码问题。

type SPReturn struct {
Inventory string
}

func FetchAllRowsPtr(query string, struc interface{}, cond ...interface{}) *[]interface{} {
db, err := sql.Open("odbc", ConnectString)
if err != nil {
    panic(err)
}
defer db.Close()
stmt, err := db.Prepare(query)
if err != nil {
    panic(err)
}
defer stmt.Close()

rows, err := stmt.Query(cond...)
if err != nil {
    panic(err)
}
defer rows.Close()

result := make([]interface{}, 0)
s := reflect.ValueOf(struc).Elem()
leng := s.NumField()
onerow := make([]interface{}, leng)
for i := 0; i < leng; i++ {
    onerow[i] = s.Field(i).Addr().Interface()
}
for rows.Next() {
    err = rows.Scan(onerow...)
    if err != nil {
        panic(err)
    }
    result = append(result, s.Interface())
}

return &result
}

/*
result := *FetchAllRowsPtr(
    `SELECT [Inventory] FROM [Character] where Name=?`, 
    new(SPReturn), "帅狗001")
fmt.Printf("result: %v\n", result)
*/
// 另外再检查下数据库的语言, Collation我的是默认的Chinese_PRC_CI_AS

回复了 mtazrael 创建的主题: 关于GOLANG操作MSSQL中文编码问题。

strsql := "SELECT [Inventory] FROM [Character] where Name=?"
stmt, err := db.Prepare(strsql)
rows, err := stmt.Query("帅狗001", "帅狗002","帅狗003") //
for rows.Next() {
....
}