访问外部数据源 > 使用外部数据源 > 编辑 ODBC 数据源
 

编辑 ODBC 数据源

ODBC 数据源可让 FileMaker 文件访问外部 ODBC 表的数据。您可以交互式查看并更新关系图中的 ODBC 表,这与您查看并更新 FileMaker 的方法相同。

FileMaker 可以连接到许多相关的数据库管理系统 (RDBMS),这些管理系统会提供用于外部使用的 ODBC API。有关受支持的数据源列表,请参阅配置 ODBC 客户端驱动程序

重要事项  要使用 ODBC 数据源,您必须:

通过 ODBC 驱动程序连接数据源,并设置 DSN。请参阅配置 ODBC 客户端驱动程序

添加 ODBC 数据源。请参阅连接外部数据源

将 ODBC 数据源链接到 FileMaker Pro Advanced 文件之后,您可以设置和编辑选项。

要编辑 ODBC 数据源:

1. 选择"文件"菜单 >"管理">"外部数据源"。

2. 在列表中选择 ODBC 数据源,然后单击"编辑"。

3. 您可以更改数据源的名称,指定不同的 DSN,设置验证选项以登入已命名的 ODBC 数据源,或者设置查看选项。

4. 对于"验证",默认选项是"提示用户输入用户名和密码"。用户在第一次访问表时必须输入用户名和密码。

如果不想让此 FileMaker 文件的任何用户得到提示,则选择"指定用户名和密码(应用到所有用户)",并输入用户名和密码。您还可以创建计算来决定用户对外部表的访问权限。您不能在这些计算中使用变量或字段。有关设置计算的更多信息,请参阅"指定计算方式"对话框

如果您使用共享数据库文件从 Microsoft SQL Server 访问 ODBC 数据,并且要启用 ODBC 数据源单点登录,请选择"使用 Windows 验证(单点登录)"并输入 SPN(服务主体名称)。请参阅启用 ODBC 数据源单点登录(仅限于 Windows)

注释  FileMaker 会将密码加密。然而,对数据源的加密取决于 ODBC 驱动程序是否支持加密。

5. 要增强性能,您可以过滤外部表的列表,或者查看可让您添加到关系图的外部表。默认是列出数据源的所有表。

对于"目录名",输入一个名称。或者,列出所有目录的表。

对于"架构名",输入一个名称。或者,列出所有架构的表。

对于"表名",输入一个名称,以便只列出该表。

6. 您可以按类型对表列表进行过滤:""、"视图"或"系统表"。

注释  如果要包括其他类型,请取消选择所有的"按类型过滤"选项。

在关系图中设置 ODBC 表

添加 ODBC 数据源之后,您可以在关系图中和布局上使用 ODBC 表,其他 FileMaker 表亦如此。您可以实时交互式检索、添加、更新和删除 ODBC 表中的数据。

1. 选择"文件"菜单 >"管理">"数据库"。

2. 在"管理数据库"对话框的"关系"选项卡中,单击 添加表按钮

3. 在"指定表"对话框中,对于"数据源",选择"ODBC 数据源"。

4. 如果系统提示您输入 ODBC 数据源的用户名和密码,则输入它们。

5. 您会看到该数据源的外部表列表。

6. 选择想要的表,然后单击"确定"。

外部表随即出现在关系图中。表名会以斜体显示。有关链接到关系图中的表并使用它们的信息,请参阅使用关系图

提示  要识别关系图中的表是 FileMaker 表还是来自 ODBC 数据源,请将指针移动到表标题中的箭头上。您可能想要为 ODBC 表添加一种颜色,以便更容易地识别它们。

将表添加到关系图中之后,FileMaker 会将具有该表名的布局添加到"布局"弹出菜单,且该表会在""选项卡中列出。表名会以斜体显示。

ODBC 表的列会在"字段"选项卡中出现。字段名会以斜体显示。如果不想 FileMaker Pro Advanced 在您的解决方案中显示字段,则可以删除这些字段。这些列不会从外部 SQL 数据源表架构删除,而只会从该表架构的 FileMaker Pro Advanced 表示形式中删除。有关更多信息,请参阅更新 FileMaker 与 ODBC 数据源之间的数据

开始使用 ODBC 数据源之前的注意事项

决定是否要在关系图中交互式使用 ODBC 表,或者通过"静态"ODBC 导入。有关使用 ODBC 数据源的各种方法的概览,请参阅在 FileMaker Pro Advanced 中使用 ODBC 和 JDBC

决定要访问哪些表,以及这些表位于哪些数据源中。

如果 FileMaker 无法自动确定表的主,系统将要求您选择包含唯一键的列。FileMaker 需要每个表都包含一个或多个每行具有唯一值的列。

使用 ODBC 数据源的限制

您无法更改 ODBC 数据源的架构。但是,您可以添加补充字段,以便对 ODBC 表中的数据执行计算和合计。

值列表中可以使用来自 ODBC 数据源的字段,但不支持字符大型对象 (CLOB),如长文本字符串。

对于包含 ODBC 数据的值列表,"不可访问"权限和"有限"自定义权限不受支持。要禁止用户查看值列表中的 ODBC 数据,必须在外部 SQL 数据库中实施行级别安全性。请参阅编辑值列表权限

不支持"SQL Server 时间戳"数据类型。

不支持二进制大型对象 (BLOB),如图片和音效。

使用"管理数据库"对话框的"字段"选项卡中的外部表时,以下字段选项不受支持。有关字段选项的信息,请参阅设置字段的选项

创建记录,而不是提交记录时,可以在"自动输入"选项卡上,自动输入序列号。(外部数据库会控制如何提交记录。)对 ODBC 数据源中的相关数据进行查找时,"拷贝下一个较低值"和"拷贝下一个较高值"都处于禁用状态。

在"验证"选项卡上,"唯一值"和"现有值"都为禁止状态。字段中允许的"最大字符数"由外部数据源决定。

"存储"选项卡为禁止状态。

FileMaker 无法控制 ODBC 管理器设置的验证和其他选项。有关在"同步"操作中字段选项如何受到影响的信息,请参阅更新 FileMaker 与 ODBC 数据源之间的数据

链接到 ODBC 数据源的 FileMaker 文件不会继承在 ODBC 数据源中创建的关系。

注释 

您可以将条件格式化应用到外部字段的数据。请参阅定义布局对象的条件格式化

当 FileMaker Server 或 FileMaker Cloud 产品托管链接到 ODBC 数据源的数据库时,FileMaker 客户端不需要设置 DSN 即可访问外部数据源。但是,必须在运行 FileMaker Server 的机器上或在 FileMaker Cloud 产品中设置 DSN。

FileMaker 不会使用 SQL 设置查询的语义。FileMaker 可能会针对布局上的每个相关表执行一次查询。如果要保留特定 SQL 联接行为,或获得 SQL 谓词(如 GROUP BY)的结果,请创建视图。然后通过这些视图访问 FileMaker 的数据。(这些视图有时称为"虚拟表"。)

较长的查询尝试滚动整个 ODBC 表,或者打开大型表会导致性能较低。

Microsoft SQL Server:默认情况下,ODBC 表中的 DATETIME、DATETIME2 和 SMALLDATETIME 数据将按时间戳字段类型进行导入。您可以将时间戳阴影字段的字段类型更改为日期或时间,但数据必须采用特定方式进行结构化。如果导入的 ODBC 表包含时间戳数据,而且将时间戳字段当作日期字段来处理,则对于表中的所有记录,时间部分都必须等于 12:00 上午(或午夜)。与此类似,如果导入的 ODBC 表包含时间戳数据,而且将时间戳字段当作时间字段来处理,则对于表中的所有记录,日期部分都必须等于 1900-01-01(或 1900 年 1 月 1 日)。

与任何 ODBC 表一样,如果字段为主键且值不唯一,则结果可能不一致。