Ppeixianzhong054.3
d6312e48创建于 2024年7月16日历史提交
/*
 * @Copyright (c) Huawei Technologies Co., Ltd. 2023-2024. All rights reserved.
 */
 
package mysqlclient_ffi

/*
 * 执行Select/Query语句返回结果的列信息
 */
public class MysqlColumnInfo <: ColumnInfo {
    private var nameString: String
    private var typeNameString: String
    private var displaySizeInt64: Int64
    private var lengthInt64: Int64
    private var scaleInt64: Int64
    private var nullableBool: Bool

    /*
     * 初始化执行Select/Query语句返回结果的列信息
     *
     * 参数 name - 列名或者别名
     * 参数 typeName - 列类型名称
     * 参数 displaySize - 列值的最大显示长度
     * 参数 length - 获取列值大小
     * 参数 scale - 列值的小数长度
     * 参数 nullable - 列值是否允许数据库Null值
     */
    public init(name: String, typeName: String, displaySize: Int64, length: Int64, scale: Int64, nullable: Bool) {
        this.nameString = name
        this.typeNameString = typeName
        this.displaySizeInt64 = displaySize
        this.lengthInt64 = length
        this.scaleInt64 = scale
        this.nullableBool = nullable
    }

    /*
     * 列名或者别名
     */
    public override prop name: String {
        get() {
            return nameString
        }
    }

    /*
     * 列类型名称,如果在SqlDataType中定义
     * 返回SqlDataType.toString(),如果未在SqlDataType中定义,由数据库驱动定义
     */
    public override prop typeName: String {
        get() {
            return typeNameString
        }
    }

    /*
     * 列值的最大显示长度,如果无限制,则应该返回Int64.Max(仍然受数据库的限制)
     */
    public override prop displaySize: Int64 {
        get() {
            return displaySizeInt64
        }
    }

    /**
     * 获取列值大小。
     */
    public override prop length: Int64 {
        get() {
            return lengthInt64
        }
    }

    /*
     * 列值的小数长度,如果无小数部分,返回0
     */
    public override prop scale: Int64 {
        get() {
            return scaleInt64
        }
    }

    /*
     * 列值是否允许数据库Null值
     */
    public override prop nullable: Bool {
        get() {
            return nullableBool
        }
    }
}