package main import ( "database/sql" "log" _ "xugu_go_driver/xugu" ) func main() { db, err := sql.Open("xugusql", "IP=10.28.20.101;DB=SYSTEM;User=SYSDBA;PWD=SYSDBA;Port=5190;AUTO_COMMIT=on;CHAR_SET=UTF8") if err != nil { log.Fatal("err ", err) } // if err := db.Ping(); err != nil { // log.Fatal("err ping ", err) // } // rows, err := db.Query("select * from dual") // if err != nil { // log.Fatal(err) // } // // rows, err := db.Query("select * from test1 where id = ?;", 4) // // if err != nil { // // log.Fatal(err) // // } // var cols []string // cols, err = rows.Columns() // if err != nil { // log.Fatal(err) // } // fmt.Println("cols: ", cols) // pvals := make([]interface{}, len(cols)) // for key, _ := range pvals { // dest := make([]byte, 216) // pvals[key] = &dest // } /* end for */ // for rows.Next() { // err = rows.Scan(pvals...) // if err != nil { // log.Fatal(err) // } // for _, v := range pvals { // fmt.Printf("输出 %s\t", string(*(v.(*[]byte)))) // } // fmt.Printf("\n") // } // rows.Close() // stmt, err := db.Prepare("select * from test1 where id = ?") // if err != nil { // log.Fatal(err) // } // stmt.Exec(2) // ret, err := db.Exec("insert into test1 (id) values (9)") // if err != nil { // log.Fatal(err) // } // ret.LastInsertId() // stmt, err := db.Prepare("select * from test1 where id = ?") // if err != nil { // log.Fatal(err) // } // rows, err := stmt.Query(5) // if err != nil { // log.Fatal(err) // } // var cols []string // cols, err = rows.Columns() // if err != nil { // log.Fatal(err) // } // fmt.Println("cols: ", cols) // pvals := make([]interface{}, len(cols)) // for key, _ := range pvals { // dest := make([]byte, 216) // pvals[key] = &dest // } /* end for */ // for rows.Next() { // err = rows.Scan(pvals...) // if err != nil { // log.Fatal(err) // } // for _, v := range pvals { // fmt.Printf("输出 %s\t", string(*(v.(*[]byte)))) // } // fmt.Printf("\n") // } // rows.Close() db.Exec("set auto_commit on;") }