123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- package cmd
- import (
- "bufio"
- "database/sql"
- "fmt"
- "os"
- "strings"
- "xg_once_query/dbBase"
- )
- func view(db *sql.DB) {
- // 创建一个新的读取器
- reader := bufio.NewReader(os.Stdin)
- for {
- fmt.Print("SQL> ")
- input, _ := reader.ReadString(';')
- input = strings.TrimLeft(input, " ")
- fmt.Printf("SQL =%s, end \n ", input)
- firstSpaceIndex := strings.Index(input, " ")
- if firstSpaceIndex != -1 {
- firstWord := input[:firstSpaceIndex]
- if strings.HasPrefix(strings.ToLower(firstWord), "select") {
- dbBase.DbQuery(db, input)
- } else {
- dbBase.DbExec(db, input)
- }
- }
- }
- // go io.Copy(os.Stdout, waiter.Reader)
- // go io.Copy(os.Stderr, waiter.Reader)
- // // "golang.org/x/crypto/ssh/terminal"
- // //此处是关键,需要将标准输入转成标准终端输入
- // fd := os.Stdin.Fd()
- // if terminal.IsTerminal(int(fd)) {
- // oldState, err := terminal.MakeRaw(int(fd))
- // if err != nil {
- // zap.S().Fatalln(err)
- // }
- // defer terminal.Restore(int(fd), oldState)
- // }
- // go io.Copy(waiter.Conn, os.Stdin)
- // if err != nil {
- // panic(err)
- // }
- }
|