Nuva 示例代码之模板示例(1)
← 目录
作者: 一了 <
[email protected]
> 日期: 2006-09-04 一句话总结: 在本例中,示例程序根据默认的数据库架构信息循环所有的表及其所有的字段,循环打印这些信息。
# Nuva 示例代码之模板示例(1) ``` <..======================================================== == == == Macrobject Nuva Samples == == == == Copyright (c) 2004-2006 Macrobject Software == == == == ALL RIGHTS RESERVED == == == == http://www.macrobject.com == == == ========================================================..> <. using('MO_RES.nuva') foreach(t = System.Tables) Print(RES.Table, '', [ [RES.Alias, t.Alias], [RES.CacheType, t.CacheType], [RES.Caption, t.Caption], [RES.Flag, t.Flag], [RES.IsEnabled, t.IsEnabled], [RES.IsReadOnly, t.IsReadOnly], [RES.Name, t.Name], [RES.SchemaName, t.SchemaName] ]) foreach(f = t.Fields) Print(RES.Field, ' ', [ [RES.Alias, f.Alias], [RES.Caption, f.Caption], [RES.CustomType, f.CustomType], [RES.DataType, f.DataType], [RES.DefaultValue, f.DefaultValue], [RES.IsAutoIncrement, f.IsAutoIncrement], [RES.IsEnabled, f.IsEnabled], [RES.IsLazyLoad, f.IsLazyLoad], [RES.IsNullable, f.IsNullable], [RES.IsPrimary, f.IsPrimary], [RES.IsReadOnly, f.IsReadOnly], [RES.Name, f.Name], [RES.Scale, f.Scale], [RES.Width, f.Width] ]) end foreach end foreach function Print(theSection, thePrefix, theValues) ?? thePrefix ~ '==== [' ~ theSection ~ '] ====' foreach(v = theValues) PrintLn(v) end foreach ?? nil function PrintLn(theValues) ?? thePrefix ~ System.String.Format('%-16s: %s', theValues[0], theValues[1]) end function end function .> ``` ``` <.. 【简介】 本例是一个模板示例,为了演示 Nuva 语言的模板编写,重点在于如何根据数据库架构信息生成相应的代码。 在本例中,示例程序根据默认的数据库架构信息循环所有的表及其所有的字段,循环打印这些信息。 本例的目的在于演示数据库的架构信息如何读取,在以下的示例中,我们将继续讨论如何读取数据架构,并能根据这些信息生成有用的代码。 【看点】 1、本例的第一重循环就是循环默认的数据库表:System.Tables System.Tables 提供一个默认的数据库表集合,通过一个与示例程序文件名相同的 cfg 文件可以配置如何读取这样的表集合。 本例中我们的 "模板示例.cfg" 内容如下: -xD:\Nuva-Samples\Northwind.xobject -x 参数指定一个 XObject 架构文件,通过该架构文件可以读取相应的数据架构信息。 XObject 文件可以通过 Macrobject CodeAuto 从数据库提取([http://www.macrobject.com/cn/codeauto/index.htm](http://www.macrobject.com/cn/codeauto/index.htm))。也可以通过 Nuva 程序直接从数据库读取,将在以后演示。 cfg 文件中的参数可以在通过 Nuva 虚拟机执行时放入命令行作为其参数。 System.Tables 返回一个 ObjectSet 对象,该对象是一个 DataObject 的集合,具体可以参考 <<Nuva API>> 的 System.Data 的信息。 这里的集合内每一个对象都是 TableObject 对象(DataObject 子类),具体的属性包括在上面的示例代码中。(还有些以后再演示介绍) 2、本例的第二重循环是循环处理 TableObject.Fields 集合,该集合是一个字段对象集合,每一个字段对象也是一个 DataObject 对象(FieldObject 是 DataObject 的子类)。具体的属性参看上面的示例代码(还有些以后再演示介绍)。 3、为了复习国际化(本地化)演示的内容,本例也进行了国际化的处理,每一个要打印出来的信息也可以采用不同的语言输出。(不熟悉的话,请参考上例<<国际化界面>>) 4、本例用到了较多的集合操作,在 Nuva 语言中,集合可以无限制的嵌套表示,本例使用 Print 和 PrintLn 函数来处理两重集合,将其按照一定的格式打印出来。 5、本例用到了一个字符串格式化函数,其中格式化的部分使用了 "%s",这是字符串参数,可以在其中加入一个数字,表示固定的宽度,如果该数字为负数,则按照左边对齐,否则按右边对齐。 System.String.Format(格式化串, 参数1...参数n) 返回格式化的字符串 【扩展】 本例可以进一步扩展以增强其实用性,比如可以根据这些数据库架构信息生成某种语言的源代码或者 SQL 脚本。 ..> ``` 本例运行结果如下(Chinese.lan): ==== [表] ==== 别名 : Category 缓存类型 : 0 标题 : Categories 标志 : 有效 : True 只读 : False 名称 : Categories 架构名称 : ==== [字段] ==== 别名 : CategoryID 标题 : CategoryID 自定义类型 : 数据类型 : 1 默认值 : 自增值 : True 有效 : True 延迟加载 : False 可为空 : False 主键 : True 只读 : False 名称 : CategoryID 小数 : 0 宽度 : 0 ==== [字段] ==== 别名 : CategoryName 标题 : CategoryName 自定义类型 : 数据类型 : 9 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : False 主键 : False 只读 : False 名称 : CategoryName 小数 : 0 宽度 : 15 ==== [字段] ==== 别名 : Description 标题 : Description 自定义类型 : 数据类型 : 10 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : True 主键 : False 只读 : False 名称 : Description 小数 : 0 宽度 : 0 ==== [字段] ==== 别名 : Picture 标题 : Picture 自定义类型 : 数据类型 : 12 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : True 主键 : False 只读 : False 名称 : Picture 小数 : 0 宽度 : 0 ==== [表] ==== 别名 : CustomerCustomerDemo 缓存类型 : 0 标题 : CustomerCustomerDemo 标志 : 有效 : True 只读 : False 名称 : CustomerCustomerDemo 架构名称 : ==== [字段] ==== 别名 : CustomerID 标题 : CustomerID 自定义类型 : 数据类型 : 9 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : False 主键 : True 只读 : False 名称 : CustomerID 小数 : 0 宽度 : 5 ==== [字段] ==== 别名 : CustomerTypeID 标题 : CustomerTypeID 自定义类型 : 数据类型 : 9 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : False 主键 : True 只读 : False 名称 : CustomerTypeID 小数 : 0 宽度 : 10 ==== [表] ==== 别名 : CustomerDemographic 缓存类型 : 0 标题 : CustomerDemographics 标志 : 有效 : True 只读 : False 名称 : CustomerDemographics 架构名称 : ==== [字段] ==== 别名 : CustomerDesc 标题 : CustomerDesc 自定义类型 : 数据类型 : 10 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : True 主键 : False 只读 : False 名称 : CustomerDesc 小数 : 0 宽度 : 0 ==== [字段] ==== 别名 : CustomerTypeID 标题 : CustomerTypeID 自定义类型 : 数据类型 : 9 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : False 主键 : True 只读 : False 名称 : CustomerTypeID 小数 : 0 宽度 : 10 ==== [表] ==== 别名 : Customer 缓存类型 : 0 标题 : Customers 标志 : 有效 : True 只读 : False 名称 : Customers 架构名称 : ==== [字段] ==== 别名 : Address 标题 : Address 自定义类型 : 数据类型 : 9 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : True 主键 : False 只读 : False 名称 : Address 小数 : 0 宽度 : 60 ==== [字段] ==== 别名 : City 标题 : City 自定义类型 : 数据类型 : 9 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : True 主键 : False 只读 : False 名称 : City 小数 : 0 宽度 : 15 ==== [字段] ==== 别名 : CompanyName 标题 : CompanyName 自定义类型 : 数据类型 : 9 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : False 主键 : False 只读 : False 名称 : CompanyName 小数 : 0 宽度 : 40 ==== [字段] ==== 别名 : ContactName 标题 : ContactName 自定义类型 : 数据类型 : 9 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : True 主键 : False 只读 : False 名称 : ContactName 小数 : 0 宽度 : 30 ==== [字段] ==== 别名 : ContactTitle 标题 : ContactTitle 自定义类型 : 数据类型 : 9 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : True 主键 : False 只读 : False 名称 : ContactTitle 小数 : 0 宽度 : 30 ==== [字段] ==== 别名 : Country 标题 : Country 自定义类型 : 数据类型 : 9 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : True 主键 : False 只读 : False 名称 : Country 小数 : 0 宽度 : 15 ==== [字段] ==== 别名 : CustomerID 标题 : CustomerID 自定义类型 : 数据类型 : 9 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : False 主键 : True 只读 : False 名称 : CustomerID 小数 : 0 宽度 : 5 ==== [字段] ==== 别名 : Fax 标题 : Fax 自定义类型 : 数据类型 : 9 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : True 主键 : False 只读 : False 名称 : Fax 小数 : 0 宽度 : 24 ==== [字段] ==== 别名 : Phone 标题 : Phone 自定义类型 : 数据类型 : 9 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : True 主键 : False 只读 : False 名称 : Phone 小数 : 0 宽度 : 24 ==== [字段] ==== 别名 : PostalCode 标题 : PostalCode 自定义类型 : 数据类型 : 9 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : True 主键 : False 只读 : False 名称 : PostalCode 小数 : 0 宽度 : 10 ==== [字段] ==== 别名 : Region 标题 : Region 自定义类型 : 数据类型 : 9 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : True 主键 : False 只读 : False 名称 : Region 小数 : 0 宽度 : 15 ==== [表] ==== 别名 : Employee 缓存类型 : 0 标题 : Employees 标志 : 有效 : True 只读 : False 名称 : Employees 架构名称 : ==== [字段] ==== 别名 : Address 标题 : Address 自定义类型 : 数据类型 : 9 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : True 主键 : False 只读 : False 名称 : Address 小数 : 0 宽度 : 60 ==== [字段] ==== 别名 : BirthDate 标题 : BirthDate 自定义类型 : 数据类型 : 7 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : True 主键 : False 只读 : False 名称 : BirthDate 小数 : 0 宽度 : 0 ==== [字段] ==== 别名 : City 标题 : City 自定义类型 : 数据类型 : 9 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : True 主键 : False 只读 : False 名称 : City 小数 : 0 宽度 : 15 ==== [字段] ==== 别名 : Country 标题 : Country 自定义类型 : 数据类型 : 9 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : True 主键 : False 只读 : False 名称 : Country 小数 : 0 宽度 : 15 ==== [字段] ==== 别名 : EmployeeID 标题 : EmployeeID 自定义类型 : 数据类型 : 1 默认值 : 自增值 : True 有效 : True 延迟加载 : False 可为空 : False 主键 : True 只读 : False 名称 : EmployeeID 小数 : 0 宽度 : 0 ==== [字段] ==== 别名 : Extension 标题 : Extension 自定义类型 : 数据类型 : 9 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : True 主键 : False 只读 : False 名称 : Extension 小数 : 0 宽度 : 4 ==== [字段] ==== 别名 : FirstName 标题 : FirstName 自定义类型 : 数据类型 : 9 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : False 主键 : False 只读 : False 名称 : FirstName 小数 : 0 宽度 : 10 ==== [字段] ==== 别名 : HireDate 标题 : HireDate 自定义类型 : 数据类型 : 7 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : True 主键 : False 只读 : False 名称 : HireDate 小数 : 0 宽度 : 0 ==== [字段] ==== 别名 : HomePhone 标题 : HomePhone 自定义类型 : 数据类型 : 9 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : True 主键 : False 只读 : False 名称 : HomePhone 小数 : 0 宽度 : 24 ==== [字段] ==== 别名 : LastName 标题 : LastName 自定义类型 : 数据类型 : 9 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : False 主键 : False 只读 : False 名称 : LastName 小数 : 0 宽度 : 20 ==== [字段] ==== 别名 : Notes 标题 : Notes 自定义类型 : 数据类型 : 10 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : True 主键 : False 只读 : False 名称 : Notes 小数 : 0 宽度 : 0 ==== [字段] ==== 别名 : Photo 标题 : Photo 自定义类型 : 数据类型 : 12 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : True 主键 : False 只读 : False 名称 : Photo 小数 : 0 宽度 : 0 ==== [字段] ==== 别名 : PhotoPath 标题 : PhotoPath 自定义类型 : 数据类型 : 9 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : True 主键 : False 只读 : False 名称 : PhotoPath 小数 : 0 宽度 : 255 ==== [字段] ==== 别名 : PostalCode 标题 : PostalCode 自定义类型 : 数据类型 : 9 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : True 主键 : False 只读 : False 名称 : PostalCode 小数 : 0 宽度 : 10 ==== [字段] ==== 别名 : Region 标题 : Region 自定义类型 : 数据类型 : 9 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : True 主键 : False 只读 : False 名称 : Region 小数 : 0 宽度 : 15 ==== [字段] ==== 别名 : ReportsTo 标题 : ReportsTo 自定义类型 : 数据类型 : 1 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : True 主键 : False 只读 : False 名称 : ReportsTo 小数 : 0 宽度 : 0 ==== [字段] ==== 别名 : Title 标题 : Title 自定义类型 : 数据类型 : 9 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : True 主键 : False 只读 : False 名称 : Title 小数 : 0 宽度 : 30 ==== [字段] ==== 别名 : TitleOfCourtesy 标题 : TitleOfCourtesy 自定义类型 : 数据类型 : 9 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : True 主键 : False 只读 : False 名称 : TitleOfCourtesy 小数 : 0 宽度 : 25 ==== [表] ==== 别名 : EmployeeTerritory 缓存类型 : 0 标题 : EmployeeTerritories 标志 : 有效 : True 只读 : False 名称 : EmployeeTerritories 架构名称 : ==== [字段] ==== 别名 : EmployeeID 标题 : EmployeeID 自定义类型 : 数据类型 : 1 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : False 主键 : True 只读 : False 名称 : EmployeeID 小数 : 0 宽度 : 0 ==== [字段] ==== 别名 : TerritoryID 标题 : TerritoryID 自定义类型 : 数据类型 : 9 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : False 主键 : True 只读 : False 名称 : TerritoryID 小数 : 0 宽度 : 20 ==== [表] ==== 别名 : OrderDetail 缓存类型 : 0 标题 : Order Details 标志 : 有效 : True 只读 : False 名称 : Order Details 架构名称 : ==== [字段] ==== 别名 : Discount 标题 : Discount 自定义类型 : 数据类型 : 3 默认值 : 0 自增值 : False 有效 : True 延迟加载 : False 可为空 : False 主键 : False 只读 : False 名称 : Discount 小数 : 0 宽度 : 0 ==== [字段] ==== 别名 : OrderID 标题 : OrderID 自定义类型 : 数据类型 : 1 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : False 主键 : True 只读 : False 名称 : OrderID 小数 : 0 宽度 : 0 ==== [字段] ==== 别名 : ProductID 标题 : ProductID 自定义类型 : 数据类型 : 1 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : False 主键 : True 只读 : False 名称 : ProductID 小数 : 0 宽度 : 0 ==== [字段] ==== 别名 : Quantity 标题 : Quantity 自定义类型 : 数据类型 : 0 默认值 : 1 自增值 : False 有效 : True 延迟加载 : False 可为空 : False 主键 : False 只读 : False 名称 : Quantity 小数 : 0 宽度 : 0 ==== [字段] ==== 别名 : UnitPrice 标题 : UnitPrice 自定义类型 : 数据类型 : 5 默认值 : 0 自增值 : False 有效 : True 延迟加载 : False 可为空 : False 主键 : False 只读 : False 名称 : UnitPrice 小数 : 0 宽度 : 0 ==== [表] ==== 别名 : Order 缓存类型 : 0 标题 : Orders 标志 : 有效 : True 只读 : False 名称 : Orders 架构名称 : ==== [字段] ==== 别名 : CustomerID 标题 : CustomerID 自定义类型 : 数据类型 : 9 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : True 主键 : False 只读 : False 名称 : CustomerID 小数 : 0 宽度 : 5 ==== [字段] ==== 别名 : EmployeeID 标题 : EmployeeID 自定义类型 : 数据类型 : 1 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : True 主键 : False 只读 : False 名称 : EmployeeID 小数 : 0 宽度 : 0 ==== [字段] ==== 别名 : Freight 标题 : Freight 自定义类型 : 数据类型 : 5 默认值 : 0 自增值 : False 有效 : True 延迟加载 : False 可为空 : True 主键 : False 只读 : False 名称 : Freight 小数 : 0 宽度 : 0 ==== [字段] ==== 别名 : OrderDate 标题 : OrderDate 自定义类型 : 数据类型 : 7 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : True 主键 : False 只读 : False 名称 : OrderDate 小数 : 0 宽度 : 0 ==== [字段] ==== 别名 : OrderID 标题 : OrderID 自定义类型 : 数据类型 : 1 默认值 : 自增值 : True 有效 : True 延迟加载 : False 可为空 : False 主键 : True 只读 : False 名称 : OrderID 小数 : 0 宽度 : 0 ==== [字段] ==== 别名 : RequiredDate 标题 : RequiredDate 自定义类型 : 数据类型 : 7 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : True 主键 : False 只读 : False 名称 : RequiredDate 小数 : 0 宽度 : 0 ==== [字段] ==== 别名 : ShipAddress 标题 : ShipAddress 自定义类型 : 数据类型 : 9 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : True 主键 : False 只读 : False 名称 : ShipAddress 小数 : 0 宽度 : 60 ==== [字段] ==== 别名 : ShipCity 标题 : ShipCity 自定义类型 : 数据类型 : 9 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : True 主键 : False 只读 : False 名称 : ShipCity 小数 : 0 宽度 : 15 ==== [字段] ==== 别名 : ShipCountry 标题 : ShipCountry 自定义类型 : 数据类型 : 9 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : True 主键 : False 只读 : False 名称 : ShipCountry 小数 : 0 宽度 : 15 ==== [字段] ==== 别名 : ShipName 标题 : ShipName 自定义类型 : 数据类型 : 9 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : True 主键 : False 只读 : False 名称 : ShipName 小数 : 0 宽度 : 40 ==== [字段] ==== 别名 : ShippedDate 标题 : ShippedDate 自定义类型 : 数据类型 : 7 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : True 主键 : False 只读 : False 名称 : ShippedDate 小数 : 0 宽度 : 0 ==== [字段] ==== 别名 : ShipPostalCode 标题 : ShipPostalCode 自定义类型 : 数据类型 : 9 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : True 主键 : False 只读 : False 名称 : ShipPostalCode 小数 : 0 宽度 : 10 ==== [字段] ==== 别名 : ShipRegion 标题 : ShipRegion 自定义类型 : 数据类型 : 9 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : True 主键 : False 只读 : False 名称 : ShipRegion 小数 : 0 宽度 : 15 ==== [字段] ==== 别名 : ShipVia 标题 : ShipVia 自定义类型 : 数据类型 : 1 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : True 主键 : False 只读 : False 名称 : ShipVia 小数 : 0 宽度 : 0 ==== [表] ==== 别名 : Product 缓存类型 : 0 标题 : Products 标志 : 有效 : True 只读 : False 名称 : Products 架构名称 : ==== [字段] ==== 别名 : CategoryID 标题 : CategoryID 自定义类型 : 数据类型 : 1 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : True 主键 : False 只读 : False 名称 : CategoryID 小数 : 0 宽度 : 0 ==== [字段] ==== 别名 : Discontinued 标题 : Discontinued 自定义类型 : 数据类型 : 6 默认值 : 0 自增值 : False 有效 : True 延迟加载 : False 可为空 : False 主键 : False 只读 : False 名称 : Discontinued 小数 : 0 宽度 : 0 ==== [字段] ==== 别名 : ProductID 标题 : ProductID 自定义类型 : 数据类型 : 1 默认值 : 自增值 : True 有效 : True 延迟加载 : False 可为空 : False 主键 : True 只读 : False 名称 : ProductID 小数 : 0 宽度 : 0 ==== [字段] ==== 别名 : ProductName 标题 : ProductName 自定义类型 : 数据类型 : 9 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : False 主键 : False 只读 : False 名称 : ProductName 小数 : 0 宽度 : 40 ==== [字段] ==== 别名 : QuantityPerUnit 标题 : QuantityPerUnit 自定义类型 : 数据类型 : 9 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : True 主键 : False 只读 : False 名称 : QuantityPerUnit 小数 : 0 宽度 : 20 ==== [字段] ==== 别名 : ReorderLevel 标题 : ReorderLevel 自定义类型 : 数据类型 : 0 默认值 : 0 自增值 : False 有效 : True 延迟加载 : False 可为空 : True 主键 : False 只读 : False 名称 : ReorderLevel 小数 : 0 宽度 : 0 ==== [字段] ==== 别名 : SupplierID 标题 : SupplierID 自定义类型 : 数据类型 : 1 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : True 主键 : False 只读 : False 名称 : SupplierID 小数 : 0 宽度 : 0 ==== [字段] ==== 别名 : UnitPrice 标题 : UnitPrice 自定义类型 : 数据类型 : 5 默认值 : 0 自增值 : False 有效 : True 延迟加载 : False 可为空 : True 主键 : False 只读 : False 名称 : UnitPrice 小数 : 0 宽度 : 0 ==== [字段] ==== 别名 : UnitsInStock 标题 : UnitsInStock 自定义类型 : 数据类型 : 0 默认值 : 0 自增值 : False 有效 : True 延迟加载 : False 可为空 : True 主键 : False 只读 : False 名称 : UnitsInStock 小数 : 0 宽度 : 0 ==== [字段] ==== 别名 : UnitsOnOrder 标题 : UnitsOnOrder 自定义类型 : 数据类型 : 0 默认值 : 0 自增值 : False 有效 : True 延迟加载 : False 可为空 : True 主键 : False 只读 : False 名称 : UnitsOnOrder 小数 : 0 宽度 : 0 ==== [表] ==== 别名 : Region 缓存类型 : 0 标题 : Region 标志 : 有效 : True 只读 : False 名称 : Region 架构名称 : ==== [字段] ==== 别名 : RegionDescription 标题 : RegionDescription 自定义类型 : 数据类型 : 9 默认值 : 自增值 : False 有效 : True 延迟加载 : True 可为空 : False 主键 : False 只读 : False 名称 : RegionDescription 小数 : 0 宽度 : 50 ==== [字段] ==== 别名 : RegionID 标题 : RegionID 自定义类型 : 数据类型 : 1 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : False 主键 : True 只读 : False 名称 : RegionID 小数 : 0 宽度 : 0 ==== [表] ==== 别名 : Shipper 缓存类型 : 0 标题 : Shippers 标志 : 有效 : True 只读 : False 名称 : Shippers 架构名称 : ==== [字段] ==== 别名 : CompanyName 标题 : CompanyName 自定义类型 : 数据类型 : 9 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : False 主键 : False 只读 : False 名称 : CompanyName 小数 : 0 宽度 : 40 ==== [字段] ==== 别名 : Phone 标题 : Phone 自定义类型 : 数据类型 : 9 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : True 主键 : False 只读 : False 名称 : Phone 小数 : 0 宽度 : 24 ==== [字段] ==== 别名 : ShipperID 标题 : ShipperID 自定义类型 : 数据类型 : 1 默认值 : 自增值 : True 有效 : True 延迟加载 : False 可为空 : False 主键 : True 只读 : False 名称 : ShipperID 小数 : 0 宽度 : 0 ==== [表] ==== 别名 : Supplier 缓存类型 : 0 标题 : Suppliers 标志 : 有效 : True 只读 : False 名称 : Suppliers 架构名称 : ==== [字段] ==== 别名 : Address 标题 : Address 自定义类型 : 数据类型 : 9 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : True 主键 : False 只读 : False 名称 : Address 小数 : 0 宽度 : 60 ==== [字段] ==== 别名 : City 标题 : City 自定义类型 : 数据类型 : 9 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : True 主键 : False 只读 : False 名称 : City 小数 : 0 宽度 : 15 ==== [字段] ==== 别名 : CompanyName 标题 : CompanyName 自定义类型 : 数据类型 : 9 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : False 主键 : False 只读 : False 名称 : CompanyName 小数 : 0 宽度 : 40 ==== [字段] ==== 别名 : ContactName 标题 : ContactName 自定义类型 : 数据类型 : 9 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : True 主键 : False 只读 : False 名称 : ContactName 小数 : 0 宽度 : 30 ==== [字段] ==== 别名 : ContactTitle 标题 : ContactTitle 自定义类型 : 数据类型 : 9 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : True 主键 : False 只读 : False 名称 : ContactTitle 小数 : 0 宽度 : 30 ==== [字段] ==== 别名 : Country 标题 : Country 自定义类型 : 数据类型 : 9 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : True 主键 : False 只读 : False 名称 : Country 小数 : 0 宽度 : 15 ==== [字段] ==== 别名 : Fax 标题 : Fax 自定义类型 : 数据类型 : 9 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : True 主键 : False 只读 : False 名称 : Fax 小数 : 0 宽度 : 24 ==== [字段] ==== 别名 : HomePage 标题 : HomePage 自定义类型 : 数据类型 : 10 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : True 主键 : False 只读 : False 名称 : HomePage 小数 : 0 宽度 : 0 ==== [字段] ==== 别名 : Phone 标题 : Phone 自定义类型 : 数据类型 : 9 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : True 主键 : False 只读 : False 名称 : Phone 小数 : 0 宽度 : 24 ==== [字段] ==== 别名 : PostalCode 标题 : PostalCode 自定义类型 : 数据类型 : 9 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : True 主键 : False 只读 : False 名称 : PostalCode 小数 : 0 宽度 : 10 ==== [字段] ==== 别名 : Region 标题 : Region 自定义类型 : 数据类型 : 9 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : True 主键 : False 只读 : False 名称 : Region 小数 : 0 宽度 : 15 ==== [字段] ==== 别名 : SupplierID 标题 : SupplierID 自定义类型 : 数据类型 : 1 默认值 : 自增值 : True 有效 : True 延迟加载 : False 可为空 : False 主键 : True 只读 : False 名称 : SupplierID 小数 : 0 宽度 : 0 ==== [表] ==== 别名 : Territory 缓存类型 : 0 标题 : Territories 标志 : 有效 : True 只读 : False 名称 : Territories 架构名称 : ==== [字段] ==== 别名 : RegionID 标题 : RegionID 自定义类型 : 数据类型 : 1 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : False 主键 : False 只读 : False 名称 : RegionID 小数 : 0 宽度 : 0 ==== [字段] ==== 别名 : TerritoryDescription 标题 : TerritoryDescription 自定义类型 : 数据类型 : 9 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : False 主键 : False 只读 : False 名称 : TerritoryDescription 小数 : 0 宽度 : 50 ==== [字段] ==== 别名 : TerritoryID 标题 : TerritoryID 自定义类型 : 数据类型 : 9 默认值 : 自增值 : False 有效 : True 延迟加载 : False 可为空 : False 主键 : True 只读 : False 名称 : TerritoryID 小数 : 0 宽度 : 20