//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) var jobs int _ = db.QueryRowContext(ctx, "SELECT COUNT(*) FROM sys.objects WHERE name LIKE '%M2M%' AND type IN ('P','TR','U','V')").Scan(&jobs) fmt.Println("объектов с M2M в имени (таблицы/процедуры/триггеры):", jobs) }