将现有元器件链接到公司数据库
概览
- 了解何时应使用 DbLink,而非 DbLib 或 SVNDbLib。
- 学习如何创建数据库链接文件,并配置与 Access、Excel 及其他受支持数据库的连接。
- 了解关键字段的链接要求,以及使用 64 位数据库引擎时的注意事项。
许多组织都有一个共同需求:将电子 CAD 元件链接到公司的中央元件数据库。Altium Designer 支持通过创建和使用 Database Link 文件,将现有元件链接到公司数据库中的记录。将数据库链接文件添加到设计项目或库包后,即可分别为已放置在原理图图纸上的元件,或更常见的、在源原理图库中定义的元件建立链接。
建立链接后,您可以使用 Tools » Update Parameters From Database 命令,将数据库记录中已映射的参数信息传输到元件的设计参数中。随后,这些信息便可包含在最终的物料清单 (BOM) 中,用于元件采购。
关于链接方式的选择……
Altium Designer 提供三种将元件链接到数据库的方法,分别使用数据库链接文件 (*.DbLink)、数据库库文件 (*.DbLib) 或 SVN 数据库库文件 (*.SVNDbLib)。DbLink 方式可高效地建立链接,使设计(或库)中使用的元件与数据库中录入的数据保持同步。DbLib/SVNDbLib 方式在这种成熟高效的链接机制基础上,还允许您直接从数据库放置元件——本质上是根据相应数据库记录中存储的信息动态创建元件。
在深入介绍数据库链接功能之前,有必要先从使用方式的角度讨论这两类方法的区别。
使用数据库链接文件建立链接
- 使用此方法时,数据库链接文件定义原理图元件与数据库中匹配记录之间的链接。记录匹配通过关键字段链接来建立,可以使用单个关键字段(例如元件编号),也可以使用多个关键字段(通过定义 Where 子句)。
- 使用此链接方法时,必须在 Altium Designer 库元件中预先定义元件的模型和参数信息。库元件的定义还必须包含必要的关键字段信息。完成这些定义后,将数据库链接文件添加到库包或设计项目中,即可使元件信息(参数)与数据库中的字段内容同步。
- 虽然每条数据库记录所定义的物理元件不必映射到唯一的 Altium Designer 库元件——多个数据库元件可以共用同一个元件符号——但此链接方法通常采用“一条数据库记录对应一个 Altium Designer 元件”的方式。这个唯一的 Altium Designer 元件可以是放置在原理图图纸上的实例,也可以是元件库中的唯一元件。
- 使用 DbLink 方式的数据库链接时,需要将数据库链接文件包含在库包或设计项目中。
使用数据库库文件建立链接
Related page: 数据库库
- 使用此方法时,数据库库文件同样定义原理图元件与数据库中匹配记录之间的链接。记录匹配也通过关键字段链接来建立,可以使用单个关键字段(例如元件编号),也可以使用多个关键字段(通过定义 Where 子句)。
- 使用此链接方法时,元件的符号、模型和参数信息作为该元件记录定义的一部分,存储在外部数据库中。所引用的原理图元件(存储在底层元件库 (*.SchLib) 中)仅包含符号,没有链接的模型,也没有定义的设计参数。
- 放置元件时,系统会根据定义的映射,使用匹配数据库记录中的相应字段即时创建其参数和模型信息。随后,系统将依据定义的匹配条件,使用其中的一个或多个参数维持与数据库的持续链接,以便在放置后继续进行同步。
- 由于此链接方法在放置时动态创建元件,因此非常适合采用“多条数据库记录对应一个 Altium Designer 元件”的方式。例如,您的数据库可能包含 E96 电阻系列,每条记录都引用相同的原理图电阻符号和相同的 PCB 封装。
- DbLink 方式的数据库链接要求将 DbLink 文件包含在库包(或设计项目)中,而 DbLib/SvnDbLib 文件则无需添加到项目中。数据库库 (DbLib) 包含在可用库中,可通过 Components 面板访问。请记住,可用库可以包括项目库、已安装的库,或在指定搜索路径中找到的库。
- 通常,您会按元件类别来配置 DbLib/SVNDbLib 文件。例如,可以用一个文件管理公司数据库中列出的所有电阻,用另一个文件管理电容,依此类推。
创建数据库链接文件
如前所述,数据库链接功能的核心是数据库链接文件。此文件使用 Altium Designer 的 DatabaseLink 编辑器创建和管理。当主设计窗口中的活动文档为 *.DbLink 文件时,即可使用此编辑器。
在 DatabaseLink 编辑器中打开的 DbLink 文件示例。
可通过以下方式创建此类型的新文件:
- 从主菜单中选择 File » New » Library » Database Link File 命令。
- 在 Projects 面板中右键单击所需项目的条目,然后从上下文菜单中选择 Add New to Project » Database Link File 命令。
连接到外部数据库
只有在当前数据库链接文件成功连接到所需的外部数据库后,表和映射数据才会显示在编辑器的主显示窗口中。可使用 Source of Connection 区域中提供的控件定义连接。
指定与外部数据库的连接。
可以连接到任何支持 OLE DB 的数据库。此区域中提供的各个选项均使用 OLE DB 连接字符串来连接目标数据库。某些数据库可能不支持 OLE DB。不过,目前使用的几乎所有数据库管理系统都可以通过开放数据库连接(ODBC)接口访问。数据库链接功能使用 Microsoft 的 ODBC 提供程序,允许 ADO(ActiveX 数据对象)连接到任何 ODBC 数据源。因此,可以连接到任何 ODBC 数据库。ODBC 数据库的 OLE DB 提供程序作为连接字符串的一部分进行指定。
快速连接到 Access 和 Excel 数据库
当目标数据库使用 Microsoft Access 或 Microsoft Excel 创建时,Select Database Type 选项提供了一种快速创建连接字符串的方法。使用此选项时,先选择数据库类型,然后浏览并选择所需的数据库文件。系统会自动生成相应的连接字符串,并将其填入 Use Connection String 选项的字段中。
构建连接字符串
如果您的公司数据库不是基于 Access 或 Excel 的数据库,并且您希望手动构建连接字符串,请启用 Use Connection String 选项,然后单击右侧对应的 Build 按钮。随即将显示 Data Link Properties 对话框。
通过 Data Link Properties 对话框构建连接字符串。
对话框打开时默认显示 Connection 选项卡。在该对话框的 Provider 选项卡上,OLE DB 提供程序默认设置为 Microsoft Office <Version> Access Database Engine OLE DB Provider。这是新建数据库链接文件的默认提供程序设置,也用于连接 Access 数据库文件(*.mdb)。请根据需要更改提供程序。
在 Connection 选项卡上,输入要连接的数据库的名称(包括路径)。
如果数据库需要登录权限,请按要求输入登录信息,并在对话框的 Advanced 选项卡中配置其他高级设置。All 选项卡汇总列出了已定义的链接选项,以及与所选 OLE DB 提供程序相关的扩展选项。也可以根据需要在此选项卡中修改选项。
定义链接选项后,可以单击 Test Connection 按钮(位于 Connection 选项卡上)检查连接是否成功。如果连接成功,将显示相应的确认对话框。
指定数据链接文件
如果要连接的数据源是使用 Microsoft 数据链接文件(*.udl)描述的,请启用第三个连接选项——Use Data Link File,然后单击对应的 Browse 按钮,找到所需的文件。数据链接文件本质上是用于存储连接字符串的容器。
执行连接
定义与外部数据库的连接后,Connect 按钮的文本将变为粗体,表示可以执行连接。如果连接详细信息正确,目标数据库的表和映射信息将加载到数据库链接文件中。Connect 按钮上的文本将变为 Connected,并且该按钮将变为灰色。
如果连接详细信息存在问题,例如连接字符串构建不正确或路径输入错误,连接将失败,并显示消息提示您。请检查连接设置,然后再次单击 Connect 按钮。
首次成功连接并保存数据库链接文件后,只要目标数据库的位置和文件名未发生变化,以后每次打开该文件时都会自动建立连接。
数据库表列表
成功连接到外部数据库后,将加载表和映射数据。DbLink 文档左侧列出了所连接数据库中的所有表。
所连接数据库中的表。
每个表条目旁的 Enable 选项可用于控制从数据库更新参数时是否使用该表。
单击列表中的某个表条目时,其图标会从
变为
,以表明它是当前活动表。该表及其所有数据将显示在文档的 Table Browser 选项卡上。这是该表的只读副本,让您无需启动外部数据库本身即可快速查看表内容。
指定匹配条件
要使用外部数据库字段中存储的信息更新元件参数,必须先将设计中的每个元件与数据库中某个表的一行进行“匹配”。文档的 Field Settings 区域允许您定义匹配条件,可以使用简单的单键查找,也可以使用 Where 子句进行更高级的匹配。
控制匹配条件。
单键查找
如果启用了 Single key lookup 选项(默认启用),则 Database field 和 Part parameter 字段将变为可用。Database field 列出了数据库当前活动表中所有可用的字段名称(列标题)。Part parameter 字段列出了设计中所有元件包含的全部参数,包括系统参数和用户自定义参数。
使用这些字段指定表中某个字段与元件中某个参数(所有元件共有)之间的匹配关系。通常,两者用于匹配的字段都是能够唯一标识外部数据库中每个元器件的信息,例如元件编号。所选的查找字段会在文档的 Field Mappings 选项卡上以灰显的 Design Parameter 条目标识。
按元件编号进行单键映射
使用 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。将显示 参数编辑器选项对话框。要将新参数添加到所有元件,请确保已启用 Include Parameters Owned By 区域中的 Parts 选项,并在 That Meet the Following Criteria 区域中将条件设为 All Objects。
设置参数管理选项。
- 单击 OK 将显示 参数表编辑器对话框,其中列出了活动工程中原理图源文档上所有元件对象(或活动原理图库中的原理图元器件)当前“拥有”的所有参数。单击 Add Column 按钮,然后在显示的 添加参数对话框中定义参数名称。确保已启用 Add to all objects 选项,以便将新参数添加到所有元件。
使用参数管理功能,为设计工程中所有源原理图上的全部元件添加新参数的示例。
- 添加新列后,单击 Accept Changes (Create ECO) 按钮。在显示的 Engineering Change Order 对话框中,先 Validate,再 Execute 更改,将参数添加到每个所需的元件。
使用 Properties 面板添加参数
可以使用 Properties 面板为所有选定元件添加新参数。以下步骤介绍如何使用 SCHLIB Filter 和 Properties 面板,为活动原理图库文档中的所有元器件添加同一个参数。
- 首先,使用 SCH Filter 面板和 IsPart 查询,选择库中的所有元器件。确保已启用 Whole Library 选项,否则只会处理当前活动的库元器件。
配置筛选器,以选择活动原理图库文档中的所有元件。
- 在库编辑器的 Properties 面板中,通过面板底部的文字确认库中的所有元件当前均已选中。如果 Properties 面板不可见,请单击工作区右下角的
按钮将其显示出来。
确认所有元件均已选中。
- 使用面板的 Parameters 选项卡添加所需参数。单击 Add 按钮添加一个新的默认参数,然后根据需要修改其名称。请注意,此时该参数已添加到所有选中的元件中;如果再次单击 Add 按钮,则会添加第二个新参数。
将所需的新参数添加到所有选中的元件。
将数据库字段映射到设计参数
对于现有元件,无论是已放置在设计项目源原理图页上的元件,还是已添加到库包中的原理图元件库内定义的元件,都可以使用 Update Parameters From Database 命令,以公司数据库中存储的外部信息更新其设计参数。当原理图文档或原理图库文档处于活动状态时,可从主 Tools 菜单中使用此命令。
当设计元件与所链接数据库中某个表内的记录匹配时,后续操作取决于数据库链接文件中指定的映射和更新信息。这些设置在主文档视图的 Field Mappings 选项卡上进行配置。
在 DbLink 文档的 Field Mappings 选项卡上指定参数映射和更新选项。
参数映射
Field Mappings 选项卡上左侧的前两列用于控制将数据库中的哪些信息映射到元件参数。
Database Field Name 列列出了数据库中当前活动表的所有字段(列)名称。Design Parameter 列用于指定应映射到数据库中相应字段的设计参数。连接数据库时会自动执行初始映射,将所有数据库字段映射到同名的设计参数。例如,如果数据库中的某个字段名为 Tolerance,则会将名为 Tolerance 的设计参数映射到该字段。
您可以通过以下方式更改设计参数条目:
- 单击相应单元格,直接输入其他参数的名称。
- 使用该单元格的下拉列表选择现有设计参数。
数据库中可能有大量与某个元件关联的数据字段,但您并不希望、甚至不需要将所有字段都作为设计参数添加到现有设计元件中。其中许多信息可能仅在生成物料清单时才需要使用。报告管理器对话框提供了一个选项,可将参数信息从链接的数据库直接添加到 BOM 中,从而减少原理图源文档所“携带”的信息量。有关更多信息,请参阅将数据库信息直接添加到 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 对话框的 Default Actions 选项卡上指定(Tools » Options)。也可以单击文档视图中 Field Settings 区域内的 Options 按钮来访问此对话框。
在统一位置定义默认参数更新选项。
第三点的优势在于,您可以在统一位置指定更新选项,然后在为每个已映射字段定义更新选项时引用该位置。因此,将数据库字段映射到设计参数时,Default 条目会自动加载到相关的更新字段中。
如果希望覆盖某个更新选项的默认设置,请在 Field Mappings 选项卡上单击相关的更新字段,然后再次单击,打开下拉列表以查看可用的更新选项。
如有需要,可以手动覆盖参数更新选项。
通过这种方式,您可以完全掌控设计中参数的更新方式。您可以将所有字段设置为 Default,然后在 Database Link Options 对话框中决定所需的更新;也可以单独设置每个更新字段,或将这两种方式结合使用——完全由您根据实际需要决定。执行更新时,将通过 Engineering Change Order 对话框完成。如果在此阶段有您不希望执行的更新,可以选择不包含这些特定更改,从而最终决定哪些设计参数会得到更新。
确保同步
在数据库链接文件中按需指定映射和更新选项并保存文件后,您就可以将数据库中的信息传递到 Altium Designer 元件的映射参数中。请记住,所选的关键字段参数用于确保 Altium Designer 元件始终与外部数据库中该元件的对应记录保持链接。这意味着,在今后的任何阶段,都可以轻松地将数据库中参数信息的更改传递回 Altium Designer 元件,使两者保持同步。更新通过 Update Parameters From Database 命令执行,该命令位于原理图/原理图库编辑器的主 Tools 菜单中。
双重同步 - DbLib/SVNDbLib 和 DBLink
您可能有一个现有设计项目,其中大多数已放置的元件都已通过 DbLink 文件链接到外部数据库。设计更改可能需要增加电路,而这些电路中的元件可能是通过 数据库库功能放置的。相关联的 DbLib/SVNDbLib 文件完全可能指向另一个外部数据库。
使用 Update Parameters From Database 命令时,系统会查询已放置元件的所有链接参数——涵盖所有链接的数据库,无论采用何种链接方式——并在 选择参数更改对话框中显示检测到的参数差异。
将数据库信息直接添加到 BOM
Related page: 在报告管理器中配置 BOM
过去,物料清单(BOM)的源信息取自设计中已放置元件的参数信息。但这可能导致原理图附带大量仅供 BOM 使用的信息。如果您放置的 Altium Designer 元件已通过 DbLink 文件链接到外部数据库,BOM 生成器就能够提取尚未作为设计参数添加到元件中的其他记录信息。
使用 报告管理器对话框配置物料清单报告时,单击对话框“列”选项卡中的 Database Parameters 按钮(
),即可将这些参数作为 BOM 的数据源,如下所示。只有当设计中至少有一个元件链接到外部数据库时,此选项才可用。
在“列”列表中,
图标用于标识链接的外部数据库中一个或多个已放置元件所具有的参数。单击可见性图标,使其变为眼睛图标(
),即可将该列(参数)包含在 BOM 中。



