//go:build live package lkgateway import ( "context" "fmt" "testing" ) // Только чтение: что сейчас в BJ_DEPO_DATA — таблицы обмена и тестовые остатки. func TestDepoNowLive(t *testing.T) { rc, err := NewRuntimeConfig("/var/lib/bj/.bj/setup.json") if err != nil { t.Fatal(err) } fs := rc.Snapshot().Fancy db, err := fancyOpen(fs, fs.DepoDB()) if err != nil { t.Fatal(err) } defer db.Close() ctx := context.Background() for _, tb := range []string{"FTV_M2M", "FTV_M2M_LINES", "FTV_M2M_EVENTS", "FTV_M2M_HANDBOOK"} { var n int err := db.QueryRowContext(ctx, "SELECT COUNT(*) FROM dbo."+tb).Scan(&n) fmt.Printf("%-18s строк %d %v\n", tb, n, err) } rows, err := db.QueryContext(ctx, `SELECT c.NUMBER, v.ISIN, CAST(rst.K AS float) FROM OD_RESTS rst JOIN OD_CLIENTS c ON c.ID=rst.REG_1 JOIN OD_VALUES v ON v.ID=rst.VALUE_ID WHERE c.NUMBER IN ('ВТНКЦ00002000','ВТНКЦ00000816') AND v.ISIN='RU0009029540'`) if err == nil { for rows.Next() { var a, i string var k float64 _ = rows.Scan(&a, &i, &k) fmt.Println("остаток SBER:", a, k) } } var mx string _ = db.QueryRowContext(ctx, "SELECT ISNULL(CONVERT(varchar(19),MAX(D_DATE),120),'') FROM OD_DOCS").Scan(&mx) fmt.Println("последний документ OD_DOCS:", mx) r2, err := db.QueryContext(ctx, "SELECT name, type_desc, CONVERT(varchar(19),modify_date,120) FROM sys.objects WHERE (name LIKE '%M2M%' OR name IN ('FU_NEXT_DOC_NUM','GEN_ID','OD_PR_INS_WIRS')) AND type IN ('P','TR','U','V','FN','IF','TF') ORDER BY name") if err != nil { fmt.Println("объекты: ошибка", err) } else { for r2.Next() { var n, ty, m string _ = r2.Scan(&n, &ty, &m) fmt.Println("объект:", n, ty, m) } } }