ODBC Driver for Sage 50 UK

Build 24.0.9060

Discovering Schemas

The following sections show how to obtain schema information.

List Tables and Views

Although the sql package does not provide a native interface to query tables and views, you can use the sys_tables system table provided by the driver.

tables, _ := db.Query("SELECT CatalogName, SchemaName, TableName FROM sys_tables WHERE TableType='TABLE'")
defer tables.Close()

for tables.Next() {
        var (
                catalog string
                schema string
                table string
        )

        rows.Scan(&catalog, &schema, &table)
        fmt.Printf("Catalog: %s, Schema: %s, Table: %s", catalog, schema, table)
}

views, _ := db.Query("SELECT CatalogName, SchemaName, TableName FROM sys_tables WHERE TableType='VIEW'")
defer views.Close()

for views.Next() {
        var (
                catalog string
                schema string
                view string
        )

        rows.Scan(&catalog, &schema, &view)
        fmt.Printf("Catalog: %s, Schema: %s, Table: %s", catalog, schema, table)
}

List Table Columns

You can use the sys_tablecolumns to get information about columns.

columns, _ := db.Query("SELECT ColumnName, DataType, Length, NumericPrecision, IsNullable FROM sys_tablecolumns WHERE TableName = 'TradingAccounts'")
defer columns.Close()

for columns.Next() {
        var (
                column string
                datatype int
                length int
                precision int
                nullable bool
        )

        rows.Scan(&column, &datatype, &length, &precision, &nullable)
        fmt.Printf("Name: %s, Type: %d, Length: %d, Precision: %d, Nullable: %t\n", column, datatype, length, precision, nullable)
}

Copyright (c) 2024 CData Software, Inc. - All rights reserved.
Build 24.0.9060