-
Notifications
You must be signed in to change notification settings - Fork 18
Open
Description
package main
import (
"context"
"database/sql"
"fmt"
_ "github.com/amsokol/ignite-go-client/sql"
)
func query(db *sql.DB) error {
//rows, err := db.Query("SELECT MAKER_ID,CORE_SYM_ID FROM kline WHERE MAKER_ID = '2'")
rows, err := db.QueryContext(context.Background(), "SELECT MAKER_ID,CORE_SYM_ID FROM kline WHERE MAKER_ID = '2'")
if err != nil {
fmt.Println("err1", err)
return err
}
defer rows.Close()
for rows.Next() {
var col1 string
var col2 string
if err := rows.Scan(&col1, &col2); err != nil {
return err
}
fmt.Printf("MAKER_ID: %s, CORE_SYM_ID: %s\n", col1, col2)
}
return rows.Err()
}
func main() {
ctx := context.Background()
// open connection
db, err := sql.Open("ignite", "tcp://localhost:10800/ignite?"+
"version=1.1.0"+
//"schema=kline"+
// Credentials are only needed if they're configured in your Ignite server.
"&username=ignite"+
"&password=ignite"+
// Don't set "tls=yes" if your Ignite server
// isn't configured with any TLS certificates.
"&tls=no"+
// You should only set this to true for testing purposes.
"&tls-insecure-skip-verify=no"+
"&page-size=10000"+
"&timeout=5000")
if err != nil {
fmt.Printf("failed to open connection: %v", err)
}
defer db.Close()
query(db)
// ping
if err = db.PingContext(ctx); err != nil {
fmt.Printf("ping failed: %v \n", err)
}
// clear test data from server
//defer db.ExecContext(ctx, "DELETE FROM kline")
// delete
//res, err := db.ExecContext(ctx, "DELETE FROM Organization")
res, err := db.ExecContext(ctx, " select MAKER_ID from kline")
if err != nil {
fmt.Printf("failed sql execute: %v\n", err)
}
fmt.Println("res", res)
//nums, err := res.RowsAffected()
//log.Printf("deleted rows: %d %v", nums, err)
//
//// insert
res, err = db.ExecContext(ctx, `INSERT INTO PUBLIC.KLINE (MAKER_ID,CORE_SYM_ID,MAKER_SYM_ID,INTERVALS,TS,OPEN_PRICE,HIGH,LOW,CLOSE_PRICE,CHG,CHG_PCT,COUNT_NUM,TIME_OFFSET,VOLUME,TURNOVER) VALUES
('4','5','6','30',1714313275,1.123,312.1,1.12,1.3,1.11,1.112,600,288000,3000.0,280.9);`)
if err != nil {
fmt.Printf("failed sql execute: %v", err)
}
//c, _ := res.RowsAffected()
//log.Printf("inserted rows: %d", c)
//
//// insert using prepare statement
//stmt, err := db.PrepareContext(ctx, "INSERT INTO Organization(_key, name, foundDateTime) VALUES"+
// "(?, ?, ?),(?, ?, ?),(?, ?, ?)")
//if err != nil {
// fmt.Printf("failed to prepare statement: %v", err)
//}
//res, err = stmt.ExecContext(ctx,
// int64(12), "Org 12", time.Now(),
// int64(13), "Org 13", time.Now(),
// int64(14), "Org 14", time.Now())
//if err != nil {
// fmt.Printf("failed sql execute: %v", err)
//}
//c, _ = res.RowsAffected()
//log.Printf("inserted rows: %d", c)
//
//// update
//res, err = db.ExecContext(ctx, "UPDATE Organization SET foundDateTime=? WHERE _key=?", time.Now(), int64(11))
//if err != nil {
// fmt.Printf("failed sql execute: %v", err)
//}
//c, _ = res.RowsAffected()
//log.Printf("updated rows: %d", c)
//
//// select
//stmt, err = db.PrepareContext(ctx,
// "SELECT _key, name, foundDateTime FROM Organization WHERE _key>=? AND _key<? ORDER BY _key ASC")
//if err != nil {
// fmt.Printf("failed to prepare statement: %v", err)
//}
//rows, err := stmt.QueryContext(ctx, int64(11), int64(14))
//if err != nil {
// fmt.Printf("failed sql query: %v", err)
//}
//cols, _ := rows.Columns()
//log.Printf("columns: %v", cols)
//var (
// key int64
// name string
// tm time.Time
//)
//for rows.Next() {
// if err := rows.Scan(&key, &name, &tm); err != nil {
// fmt.Printf("failed to get row: %v", err)
// }
// log.Printf("key=%d, name=\"%s\", found=\"%v\"", key, name, tm)
//}
}
err1 failed to execute query: [1] 50000: Failed to set schema for DB connection for thread [schema=ignite]
failed sql execute: failed to execute query: [1] 42000: Given statement type does not match that declared by JDBC drive
Metadata
Metadata
Assignees
Labels
No labels