将现有元器件链接到公司数据库
许多组织的一个常见需求,是将电子 CAD 元件链接到公司的中央元件数据库。Altium Designer 通过创建并使用 Database Link 文件,支持将现有元件链接到公司数据库中的记录。Database Link 文件会被添加到你的设计工程或库包中,从而分别允许你从已放置在原理图页上的元件,或(更常见地)从源原理图库中定义的元件建立链接。
建立链接后,你可以使用 Tools » Update Parameters From Database 命令,将数据库记录中已映射的参数化信息传输到元件中的设计参数。这些信息随后可被纳入最终的物料清单(BOM),以便进行元件采购。
关于链接方式的说明……
Altium Designer 提供三种从元件链接到数据库的方法——分别使用 Database Link 文件(*.DbLink)、Database Library 文件(*.DbLib)或 SVN Database Library 文件(*.SVNDbLib)。DbLink 方法提供了一种高效的方式,用于链接并保持设计(或库)中使用的元件与数据库中录入的数据同步。DbLib/SVNDbLib 方法在这种已验证的链接效率基础上,进一步提供了可直接从数据库放置元件的自由度——本质上是根据对应数据库记录中存储的信息动态创建元件。
在深入介绍数据库链接功能之前,有必要先讨论这两种方法在使用方式上的差异。
使用 Database Link 文件进行链接
- 使用该方法时,Database Link 文件定义了原理图元件与数据库中匹配记录之间的链接关系。记录匹配通过关键字段链接来建立,可以是单个关键字段(例如料号),也可以是多个关键字段(通过定义 Where 子句)。
- 采用这种链接方式时,元件的模型与参数信息必须预先在 Altium Designer 库元件中定义。库元件的定义中也必须包含所需的关键字段信息。完成这些定义后,将 Database Link 文件添加到你的库包或设计工程中,然后即可将元件信息(参数)与数据库字段内容进行同步。
- 尽管数据库中每条记录所定义的每个物理元件不一定都要映射到唯一的 Altium Designer 库元件——多个数据库元件可以共享同一个元件符号——但这种链接方式通常以“一个数据库记录对应一个 Altium Designer 元件”的形式使用。这个唯一的 Altium Designer 元件既可以是放置在原理图页上的一个实例,也可以是元件库中的一个唯一元件。
- 使用 DbLink 风格的数据库链接时,需要将 Database Link 文件与库包或设计工程一同包含。
使用 Database Library 文件进行链接
Related page: Database Libraries
- 使用该方法时,Database Library 文件同样定义了原理图元件与数据库中匹配记录之间的链接关系。同样,记录匹配通过关键字段链接建立,可以是单个关键字段(例如料号),也可以是多个关键字段(通过定义 Where 子句)。
- 采用这种链接方式时,元件的符号、模型和参数信息作为该元件在外部数据库中的记录定义的一部分进行存储。被引用的原理图元件(存储在底层元件库(*.SchLib)中)仅包含符号;它没有链接的模型,也没有已定义的设计参数。
- 当放置元件时,会根据匹配的数据库记录中对应字段,并按照已定义的映射关系,动态生成其参数与模型信息。随后,其中一个或多个参数将用于按已定义的匹配条件维持与数据库的持续回链,从而在放置后支持未来的同步。
- 由于该链接方式在放置时动态创建元件,因此非常适合以“多个数据库记录对应一个 Altium Designer 元件”的形式使用。例如,你的数据库可能包含 E96 电阻系列,每条记录都引用同一个原理图电阻符号以及同一个 PCB 封装。
- 不同于 DbLink 风格的数据库链接(DbLink 文件必须包含在库包或设计工程中),DbLib/SvnDbLib 文件不需要添加到工程中。数据库库(DbLib)会包含在 Available Libraries 中——可通过 Components panel 访问。请记住,Available Libraries 可以由 Project Libraries、Installed Libraries 或在指定搜索路径下找到的库组成。
- 通常你会以面向库的方式来配置 DbLib/SVNDbLib 文件。例如,你可能为公司数据库中所有电阻配置一个,为电容配置另一个,依此类推。
创建 Database Link 文件
如前所述,数据库链接功能的核心是 Database Link 文件。该文件通过 Altium Designer 的 DatabaseLink Editor 创建和管理。当主设计窗口中的活动文档为 *.DbLink 文件时,该编辑器即可使用。
在 DatabaseLink Editor 中打开的 DbLink 文件示例。
通过以下方式创建此类型的新文件:
- 从主菜单选择 File » New » Library » Database Link File 命令。
- 在 Projects panel 中右键单击所需工程的条目,并从右键菜单中选择 Add New to Project » Database Link File 命令。
连接到外部数据库
只有当活动的 Database Link 文件成功连接到所需的外部数据库后,表格与映射数据才会显示在编辑器的主显示窗口中。连接通过 Source of Connection 区域中提供的控件来定义。
指定与外部数据库的连接。
任何提供 OLE DB 支持的数据库都可以连接。该区域提供的各个选项都使用 OLE DB 连接字符串来连接目标数据库。有些数据库可能不提供 OLE DB 支持。然而,几乎所有当今使用的数据库管理系统都可以通过开放数据库连接(ODBC)接口访问。数据库链接功能使用 Microsoft 的 ODBC 提供程序,使 ADO(ActiveX Data Object)能够连接到任何 ODBC 数据源。因此,任何 ODBC 数据库都可以连接。针对 ODBC 数据库的 OLE DB 提供程序会作为连接字符串的一部分进行指定。
快速连接 Access 与 Excel 数据库
Select Database Type 选项在目标数据库由 Microsoft Access 或 Microsoft Excel 创建时,提供一种更快捷的连接字符串生成方式。使用该选项时,选择数据库类型,然后浏览并选择所需的数据库文件。相应的连接字符串将自动生成并填入 Use Connection String 选项的字段中。
构建连接字符串
如果你的公司数据库不是基于 Access 或 Excel,并且你希望显式构建连接字符串,请启用 Use Connection String 选项,然后点击右侧对应的 Build button。将会出现 Data Link Properties 对话框。
通过 Data Link Properties 对话框构建连接字符串。
该对话框会在 Connection 选项卡中打开。OLE DB Provider Microsoft Office <Version> Access Database Engine OLE DB Provider 在对话框的 Provider 选项卡中默认设置完成。这是新建 Database Link 文件的默认提供程序设置,也用于连接 Access 数据库文件(*.mdb)。请根据需要更改提供程序。
在 Connection 选项卡中输入要连接的数据库名称(包括路径)。
如果你的数据库需要登录权限,请按要求输入,并根据对话框 Advanced 选项卡中提供的其他高级设置进行配置。All 选项卡会提供已定义链接选项的汇总列表,以及与所选 OLE DB Provider 相关的扩展选项。也可以在该选项卡中按需修改选项。
定义好链接选项后,可单击 Test Connection 按钮(位于 Connection 选项卡)检查是否连接成功。连接成功会弹出确认对话框提示。
指定 Data Link 文件
如果你要连接的数据源是通过 Microsoft Data Link 文件(*.udl)描述的,请启用第三个连接选项——Use Data Link File——并单击对应的 Browse 按钮以定位所需文件。Data Link 文件本质上是用于存储连接字符串的载体。
继续进行连接
在定义与外部数据库的连接后,Connect 按钮的文字会变为粗体,表示你可以继续连接。如果连接详情正确,目标数据库的表和映射信息将被加载到 Database Link 文件中。Connect 按钮上的文字会变为 Connected,并且按钮会变为灰色不可用。
如果连接详情存在问题,例如连接字符串构建不正确或路径输入错误,连接将失败,并会出现消息提示。请检查连接设置,然后再次单击 Connect 按钮。
首次成功连接并保存 Database Link 文件后,只要目标数据库的位置和文件名未更改,每次打开该文件都会自动建立连接。
数据库表列表
成功连接到外部数据库后,将加载表和映射数据。DbLink 文档左侧会列出已连接数据库中存在的所有表。
已连接数据库中存在的表。
每个表条目旁的 Enable 选项用于控制在从数据库更新参数时是否使用该表。
当你在列表中单击某个表条目时,其图标会从
变为
,以便将其与当前活动表区分开来。该表(包含其全部数据)会显示在文档的 Table Browser 选项卡中。这是该表的不可编辑副本,便于你快速查看其内容,而无需启动外部数据库本身。
指定匹配条件
为了用外部数据库字段中存储的信息更新器件参数信息,必须先将设计中的每个器件与数据库中某个表的一行记录进行“匹配”。文档的 Field Settings 区域允许你定义匹配条件——可以是简单的单键查找,也可以是使用 Where 子句的更高级匹配。
控制匹配条件。
单键查找
如果启用 Single key lookup 选项(默认),则 Database field 和 Part parameter 字段可用。Database field 会列出数据库活动表中所有可用字段名(列标题)。Part parameter 字段会列出设计中所有器件包含的参数——包括系统参数和用户自定义参数。
使用这些字段来指定表中某个字段与器件中某个参数(所有器件通用)之间的匹配关系。通常,两者的匹配字段都是能在外部数据库中唯一标识每个元件的内容,例如 Part Number。所选查找字段会在文档的 Field Mappings 选项卡中以 Design Parameter 条目灰显的方式标识出来。
按 Part Number 进行单键映射
使用 Tools » Update Parameters From Database 功能时,会从已放置的原理图器件中读取所选关键参数的信息,然后在数据库所选(关键)字段中(跨所有已启用的表)进行搜索。当匹配成功后,就可以将父表该记录中其他单元格的信息回写到原理图器件中已映射的参数。
高级匹配——Where 子句
当存在唯一的料号/ID 可用于匹配时,Single key lookup 选项效果很好;但当按非唯一参数(如电容值或电阻值)匹配时就不够有效。此时应使用更高级的 Where 子句,通过指定多个关键匹配条件,将原理图器件链接到相关数据库表中的目标行。
在最简单的形式下,Where 子句(使用 SQL 语法编写)反映了用于单键查找的所选条目。例如,如果选择 Database field 为 Part Number,并将设计中所有器件都存在的唯一 Part parameter 选择为 Part Number,则 Where 子句的条目应为:
[Part Number] = '{Part Number}'
数据库字段(表列)外侧的方括号是引用字符,其在 Database Connection 对话框的 Advanced 选项卡中指定。可通过单击文档 Source of Connection 区域中的 Advanced 按钮,或从主 Tools 菜单访问该对话框。
Database Connection 对话框的 Advanced 选项卡提供了额外的 SQL 选项,用于在构建 Where 子句时对表进行引用,或使用表架构名称。
花括号(大括号)表示所引用的条目是一个设计参数。单引号用于指定将该设计参数按字符串处理,而不是按数字处理(数字不加引号)。类型匹配非常重要,因为 SQL 对类型敏感。设计参数应与数据库列的类型保持一致。
使用标准 SQL 语法,Where 子句可以扩展为使用多个 Database field/Part parameter 条目进行匹配,例如:
[Capacitance] = '{Capacitance}' AND [Tolerance] = {Tolerance} AND [Manufacturer] = '{Manufacturer}'
在这种情况下,将使用三个不同的设计参数链接到数据库相关表中的单条记录。注意 Tolerance 设计参数的条目未加引号。这意味着数据库相关表中该列的类型是 Number 而不是 String。
使用标准 SQL 语法,你可以将 Where 子句写得尽可能简单或复杂。一个更复杂子句的示例可能是:
[Tolerance] BETWEEN {Min Tolerance} AND {Max Tolerance} AND [Price] <= {Max Price} AND [Manufacturer] IN ('{Preferred Manufacturer 1}', '{Preferred Manufacturer 2}')
在这种情况下,将基于三个数据库字段——Tolerance、Price 和 Manufacturer——查询匹配的器件。容差必须落在由 Min Tolerance 和 Max Tolerance 设计参数定义的范围内。价格必须小于或等于 Max Price 设计参数中指定的值,并且制造商可以是由 Preferred Manufacturer 1 和 Preferred Manufacturer 2 设计参数指定的两个候选者之一。
创建器件参数
如果你的 Altium Designer 元件中没有合适的参数可用作 DbLink 文件中用于匹配目的的 Part parameter,则需要创建一个。可以使用 Tools » Parameter Manager 命令或相关编辑器的 Properties 面板快速添加此“基础”参数。
使用参数管理功能添加参数
要使用参数管理功能添加新参数:
- 在原理图文档(或原理图库文档)中,从主菜单选择 Tools » Parameter Manager。将出现 Parameter Editor Options dialog。要将新参数添加到所有器件,请确保在 Include Parameters Owned By 区域中启用 Parts 选项,并在 That Meet the Following Criteria 区域中将 All Objects 设置为条件。
设置参数管理选项。
- 点击 OK 将显示 Parameter Table Editor dialog,其中列出了当前活动工程中原理图源文档里所有器件对象(或活动原理图库中的原理图元件)“拥有”的全部参数。单击 Add Column 按钮,并使用随即出现的 Add Parameter dialog 来定义该参数的名称。确保启用 Add to all objects 选项,这样新参数就会被添加到所有器件中。
使用 Parameter Management 功能在设计工程中跨所有源原理图为所有器件添加新参数的示例。
- 添加新列后,单击 Accept Changes (Create ECO) 按钮。使用出现的 Engineering Change Order 对话框来 Validate,然后 Execute 这些更改——将该参数添加到每个所需的器件中。
通过 Engineering Change Order 执行参数更改(将新参数添加到所有器件)。
使用 Properties Panel 添加参数
可以使用 Properties 面板为所有选中的器件添加一个新参数。下面的流程概述了这样一种情况:你希望使用 SCHLIB Filter 和 Properties 面板,将同一个参数添加到活动原理图库文档中的所有元件。
- 首先,使用 SCH Filter 面板并通过查询 IsPart 选中库中的所有元件。确保启用 Whole Library 选项,否则只会考虑当前活动的库元件。
配置筛选器以选中活动原理图库文档中的所有器件。
-
在库编辑器的 Properties 面板中,通过面板底部的文字确认当前已选中库中的所有元件。如果 Properties 面板不可见,请单击工作区右下角的
按钮将其显示出来。
检查是否已选中所有器件。
- 在该面板的 Parameters 选项卡中添加所需参数。单击 Add 按钮添加一个新的默认参数,然后按需编辑名称。注意:该参数已经添加到所有选中的元件中;如果再次单击 Add 按钮,将会再添加一个新的参数。
将所需的新参数添加到所有选中的器件。
将数据库字段映射到设计参数
现有元件的设计参数——无论是放置在设计工程源原理图页上的元件,还是定义在已添加到库包中的原理图元件库里的元件——都可以通过 Update Parameters From Database 命令使用公司数据库中外部存储的信息进行更新。该命令在原理图文档/原理图库文档处于活动状态时,可从主 Tools 菜单中获得。
当设计元件与已链接数据库某个表中的记录匹配时,后续行为由 Database Link 文件中指定的映射与更新信息决定。这些设置在主文档视图的 Field Mappings 选项卡上配置。
在 DbLink 文档的 Field Mappings 选项卡上指定参数映射与更新选项。
参数映射
Field Mappings 选项卡中最左侧的两列用于控制要将数据库中的哪些信息映射到元件参数。
Database Field Name 列列出当前活动数据库表中的所有字段(列)名称。Design Parameter 列用于指定应映射到该数据库字段的设计参数。初始映射会在连接数据库时自动执行:所有数据库字段会按同名映射到设计参数。例如,如果数据库中的字段名为 Tolerance,则会映射到名为 Tolerance 的设计参数。
你可以通过以下方式更改设计参数的条目:
- 在其单元格中单击并直接键入另一个参数名称。
- 使用该单元格关联的下拉列表选择一个现有设计参数。
数据库中可能与某个元件关联了大量数据字段,但你未必希望(甚至不需要)将它们全部作为设计参数添加到现有设计元件中。很多信息可能只在生成 BOM 时才需要。Report Manager dialog 提供了一个选项,可直接从已链接数据库向 BOM 添加参数信息——从而减少需要随原理图源文档“携带”的信息量。更多信息请参阅 Adding Database Information Directly to a BOM 一节。
对于你明确不希望从数据库映射的字段,将 Design Parameter 条目设置为 [None]。未映射的数据库字段在该选项卡上会以红色叉号图标(
)标识;已映射的数据库字段则以绿色对勾图标(
)标识。
按需定义参数映射。
参数更新选项
Field Mappings 选项卡中其余列用于指定在使用 Tools » Update Parameters From Database 命令更新元件时,对参数采取的动作。在以下说明中,术语 Altium component 用于表示原理图页上已放置的元件,或原理图元件库中已定义的元件(其属于某个库包)。
这四列如下:
- Update Values - 该列中的单元格用于确定:当参数在 Altium 元件和数据库中都存在,但当前值不同,应采取什么动作。可选择用数据库中存储的值更新 Altium 元件的参数(Update),或完全不更新(Do not update)。
- Add To Design - 该列中的单元格用于确定:当参数在数据库中存在,但在 Altium Designer 元件中不存在时,应采取什么动作。可选择添加参数(Add)、不添加参数(Do not add),或仅当该参数在数据库中被赋值时才添加(Add only if not blank in database)。
- Visible On Add - 该列中的复选框用于确定:新添加的参数是否在 Altium 元件中可见(启用)或不可见(禁用)。
- Remove From Design - 该列中的单元格用于确定:当参数在 Altium Designer 元件中存在,但数据库中不存在,或虽存在但没有值时,应采取什么动作。可选择完全不移除参数(Do not remove),或仅当该参数在数据库中未被赋值时才移除(Remove only if blank in database)。
初始时,对于每个已映射的数据库字段,Update Values、Add To Design 和 Remove From Design 字段都会设置为 Default,并且 Visible On Add 选项会被禁用,如下图所示。
初始(默认)参数更新选项。
从图中可以得出关于更新选项的三点重要说明:
- 未映射的数据库字段不会有对应的更新选项。
- 关键字段(例如图中的 Part Number)不会有对应的更新选项。该字段仅用于参数匹配。
- Default 的设置会使更新选项遵循其对应的默认定义,该默认定义在 Database Link Options 对话框(Tools » Options)的 Default Actions 选项卡中指定。也可以通过单击文档视图中 Field Settings 区域的 Options button 来打开该对话框。
在集中位置定义默认参数更新选项。
第三点的好处在于:你可以在一个集中位置指定更新选项,然后在为每个已映射字段定义更新选项时引用该位置。这就是为什么在将数据库字段映射到设计参数时,Default 条目会自动加载到相关的更新字段中。
如果你希望覆盖某个更新选项的默认设置,请在 Field Mappings 选项卡中单击相应的更新字段,然后再次单击以打开下拉列表,从中选择适用的更新选项。
如有需要,可手动覆盖参数更新选项。
通过这种方式,你可以完全控制设计中的参数如何更新。你可以将所有字段都设置为 Default,并在 Database Link Options 对话框中做出所需的更新决策;也可以逐个设置每个更新字段;或两者混合使用——完全由你按需决定。执行更新时,会通过 Engineering Change Order dialog 来完成。如果在此阶段存在你不希望进行的更新,你可以选择不包含那些特定更改——从而由你最终决定哪些设计参数会被更新。
确保同步性
在 Database Link 文件中按需指定映射与更新选项并保存文件后,你就可以将数据库中的信息传递到 Altium Designer 元件已映射的参数中。请记住,所选的关键字段参数用于确保 Altium Designer 元件保持与外部数据库中该元件对应记录的链接。这意味着在未来的任何阶段,数据库中参数信息的更改都可以轻松回传到 Altium Designer 元件,从而实现两者同步。更新通过 Update Parameters From Database 命令执行,可从原理图/原理图库编辑器主 Tools 菜单中访问。
双向同步 - DbLib/SVNDbLib 与 DBLink
你可能已有一个现有的设计项目,其中大多数已放置的器件都通过 DbLink 文件链接到了外部数据库。设计变更可能会带来额外的电路,而这些电路所需的元件可能会使用 Database Library 功能来放置。相关的 DbLib/SVNDbLib 文件也很可能指向另一个不同的外部数据库。
使用 Update Parameters From Database 命令时,将会查询所有已放置元件的已链接参数——跨所有已链接数据库,不论采用何种链接方式——并在 Select Parameter Changes dialog 中显示检测到的参数差异。
将数据库信息直接添加到 BOM
Related page: Report Manager 中的 BOM 配置
过去,物料清单(BOM)的来源信息通常取自设计中已放置元件的参数信息。但这可能导致大量只用于 BOM 的信息被附加在原理图上。如果你放置的 Altium Designer 元件通过 DbLink 文件链接到外部数据库,那么 BOM 生成器能够提取那些尚未作为设计参数添加到元件中的其他记录信息。


