【发布时间】:2013-11-11 00:07:03
【问题描述】:
我使用导入脚本步骤从 ODBC 导入了几个表。目前,我为每个表都有一个导入脚本。因为我现在有近 200 个不同的表,所以这变得很笨重。
我知道我可以计算 SQL 语句以说出类似“Select * from” & $TableName 之类的内容。但是,如果不在脚本中指定它,我无法弄清楚如何设置目标表。请告诉我,我很密集,有一个好方法可以做到这一点!
提前感谢您的帮助, 妮可威尔森 综合研究
【问题讨论】:
我使用导入脚本步骤从 ODBC 导入了几个表。目前,我为每个表都有一个导入脚本。因为我现在有近 200 个不同的表,所以这变得很笨重。
我知道我可以计算 SQL 语句以说出类似“Select * from” & $TableName 之类的内容。但是,如果不在脚本中指定它,我无法弄清楚如何设置目标表。请告诉我,我很密集,有一个好方法可以做到这一点!
提前感谢您的帮助, 妮可威尔森 综合研究
【问题讨论】:
不幸的是,如果您使用 Import Records 脚本步骤,则必须在 FileMaker 12 以上版本中对导入的目标表进行硬编码。我可以想到一个解决方法,但它相当复杂,如果您要导入大量记录,可能会显着增加导入它们的时间。
解决方法是不使用Import Records 脚本步骤,而是自己编写记录创建和数据填充到字段中的脚本。
首先,这是否成功取决于您使用 ODBC 的方式。据我所知,只有当您使用 ODBC 在 FileMaker 中创建影子表以便 FileMaker 可以通过其他脚本步骤访问 ODBC 数据库时,它才会起作用。我不是 FileMaker 其他 ODBC 工具的专家,所以我不知道这种解决方法在其他情况下是否有用。
因此,如果您在远程 ODBC 数据库中有一个影子表,那么您可以使用类似以下的脚本。基本思想是有两组布局,一组用于信息来自的影子表,另一组用于信息需要转到的 FileMaker 表。遍历此列表,将影子表中的信息提取到变量中(或类似于我编写的字典库,您可以在 https://github.com/chivalry/filemaker-dictionary 找到)。然后转到链接到目标表的布局,创建记录并填充字段。
但是,这不是一种新手技术。除了使用变量和循环之外,您还必须使用 FileMaker 的设计函数来确定每个字段的源和目标,并使用Set Field By Name 将数据放在正确的位置。但据我所知,这是动态定位表以导入数据的唯一方法。
【讨论】:
INSERT 命令。我用谷歌搜索“FileMaker SQL 插件”来找到它。执行相同的搜索会出现其他几个,但这个特别说它支持INSERT 命令。