123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- package xugutest
- import (
- "database/sql"
- "fmt"
- "log"
- "testing"
- _ "xugu_driver/xugu"
- )
- func openDb() (*sql.DB, error) {
- return sql.Open("xugusql",
- "IP=10.28.20.101;DB=SYSTEM;User=SYSDBA;PWD=SYSDBA;Port=5190;AUTO_COMMIT=on;CHAR_SET=UTF8")
- }
- var db *sql.DB
- func init() {
- var err error
- db, err = openDb()
- if err != nil {
- log.Fatal(err)
- }
- }
- func TestPing(t *testing.T) {
- err := db.Ping()
- if err != nil {
- fmt.Printf("connect xugu dbms ... failed\n")
- } else {
- fmt.Printf("connect xugu dbms ... ok\n")
- }
- }
- func TestQuery(t *testing.T) {
- rows, err := db.Query("select * from gotest")
- if err != nil {
- log.Fatal(err)
- }
- var cols []string
- cols, err = rows.Columns()
- if err != nil {
- log.Fatal(err)
- }
- 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()
- }
- func TestStmtQuery(t *testing.T) {
- stmt, _ := db.Prepare("select * from gotest where name = ?;")
- rows, err := stmt.Query("'gc'")
- if err != nil {
- log.Fatal(err)
- }
- var cols []string
- cols, err = rows.Columns()
- if err != nil {
- log.Fatal(err)
- }
- 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()
- }
|