github.com/ydb-platform/ydb-go-sdk/v3@v3.89.2/sugar/example_test.go (about) 1 package sugar_test 2 3 import ( 4 "context" 5 "fmt" 6 7 "github.com/ydb-platform/ydb-go-sdk/v3" 8 "github.com/ydb-platform/ydb-go-sdk/v3/sugar" 9 ) 10 11 func Example_unmarshallRow() { 12 ctx := context.TODO() 13 db, err := ydb.Open(ctx, "grpc://localhost:2136/local") 14 if err != nil { 15 panic(err) 16 } 17 defer db.Close(ctx) // cleanup resources 18 19 type myStruct struct { 20 ID int32 `sql:"id"` 21 Str string `sql:"myStr"` 22 } 23 24 row, err := db.Query().QueryRow(ctx, `SELECT 42 as id, "my string" as myStr`) 25 if err != nil { 26 panic(err) 27 } 28 29 one, err := sugar.UnmarshallRow[*myStruct](row) 30 if err != nil { 31 panic(err) 32 } 33 34 fmt.Printf("one = %+v\n", one) 35 // one = &{ID:42 Str:my string} 36 } 37 38 func Example_unmarshallResultSet() { 39 ctx := context.TODO() 40 db, err := ydb.Open(ctx, "grpc://localhost:2136/local") 41 if err != nil { 42 panic(err) 43 } 44 defer db.Close(ctx) // cleanup resources 45 46 type myStruct struct { 47 ID int32 `sql:"id"` 48 Str string `sql:"myStr"` 49 } 50 51 rows, err := db.Query().QueryResultSet(ctx, ` 52 SELECT 42 as id, "myStr42" as myStr 53 UNION 54 SELECT 43 as id, "myStr43" as myStr 55 ORDER BY id 56 `) 57 if err != nil { 58 panic(err) 59 } 60 61 many, err := sugar.UnmarshallResultSet[myStruct](rows) 62 if err != nil { 63 panic(err) 64 } 65 66 fmt.Print("many = [") 67 for i, s := range many { 68 if i > 0 { 69 fmt.Print(",") 70 } 71 fmt.Printf("\n\t%+v", s) 72 } 73 fmt.Println("\n]") 74 // many = [ 75 // &{ID:42 Str:myStr42}, 76 // &{ID:43 Str:myStr43} 77 //] 78 }