查看: 4|回复: 0

如何在FlexSim中使用ODBC?

[复制链接]

主题

0

回帖

344

积分

注册会员

积分
344
发表于 2023-1-29 09:12:20 | 显示全部楼层 |阅读模式
[i=s] 本帖最后由 小赵同学 于 2023-1-29 10:00 编辑 [/i]

[b]什么是ODBC?[/b][align=left][color=rgb(51, 51, 51)][font="]FlexSim 可以使用 ODBC,而 ODBC 可以连接到许多不同类型的数据源,包括文件(如 Excel)和数据库。它允许您使用 SQL 查询从任何支持的数据源获取数据。[/font][/color][/align][align=left][color=rgb(51, 51, 51)][font="]ODBC 使用驱动程序确定如何从给定数据源获取数据。驱动程序是 ODBC 和您正在查询的任何数据源之间的转换器。例如,有一个用于 Excel 文件的驱动程序。如果您的系统上有该驱动程序,则可以使用 ODBC 从 Excel 文件中查询数据。再举一个例子,有一个 SAP HANA 的驱动程序,SAP 的数据库。如果您有该驱动程序,那么 ODBC 将知道如何与 SAP 对话。[/font][/color][/align][align=left][color=rgb(51, 51, 51)][font="]这意味着如果安装了正确的驱动程序并且工作正常,您就可以使用 FlexSim 查询任何 ODBC 数据源。[/font][/color][/align][b]使用数据库连接器[/b][align=left][color=rgb(51, 51, 51)][font="]FlexSim 有一个称为数据库连接器的工具。您可以使用它来配置与数据库的连接。本文使用该工具。有关详细信息,请参阅
[color=#3b73b9][url=https://docs.flexsim.com/en/20.2/Reference/Tools/DatabaseConnectors/]https://docs.flexsim.com/en/20.2/Reference/Tools/DatabaseConnectors/[/url][/color][/font][/color][/align][align=left][color=rgb(51, 51, 51)][font="]例如,假设您要使用 ODBC 连接到 Excel。假设您的系统上安装了 Excel ODBC 驱动程序,您可以将数据库连接器配置为如下所示:
[color=#3b73b9][url=https://answers.flexsim.com/storage/attachments/32524-1599857260215.png]https://answers.flexsim.com/storage/attachments/32524-1599857260215.png[/url][/color][/font][/color][/align][align=left][color=rgb(51, 51, 51)][font="]请注意,您必须指定完整的连接字符串。在连接字符串中,您可以看到指定了驱动程序和文件。然后您可以使用如下查询查询给定工作表中的数据:[/font][/color][/align][list=1]
[*][color=#000]SELECT [/color][color=#66660]*[/color][color=#000] FROM [/color][color=#000000][Sheet1$][/color]
[/list][align=left][color=rgb(51, 51, 51)][font="]您可以在以下网站找到有关查询 Excel 文件的更多信息:
[color=#3b73b9][url=https://querysurge.zendesk.com/hc/en-us/articles/205766136-Writing-SQL-Queries-against-Excel-files-Excel-SQL-]https ://querysurge.zendesk.com/hc/en-us/articles/205766136-Writing-SQL-Queries-against-Excel-files-Excel-SQL-[/url][/color][/font][/color][/align][align=left][color=rgb(51, 51, 51)][font="]如果您使用 Office 365,您可能需要安装[color=#3b73b9][url=https://www.microsoft.com/download/details.aspx?id=54920]Microsoft Access Database Engine 2016 Redistributable[/url][/color]。这包括用于 Excel 和 Access 的较新驱动程序 请务必在命令行上使用 /quiet 标志安装它。可以在本故障排除指南中找到说明:[/font][/color][/align][align=left][color=rgb(51, 51, 51)][font="][color=#3b73b9][url=https://docs.microsoft.com/en-us/office/troubleshoot/access/cannot-use-odbc-or-oledb]https://docs.microsoft.com/en-us/office/troubleshoot/access/cannot-use-odbc-or-oledb[/url][/color][/font][/color][/align][align=left][color=rgb(51, 51, 51)][font="]请注意,FlexSim 有一个 Excel 工具,通常更易于使用。此工具需要安装 Excel,但不需要在您的计算机上安装 Excel 的 ODBC 驱动程序。有关详细信息,请参阅[color=#3b73b9][url=https://docs.flexsim.com/en/20.2/Reference/Tools/ExcelInterface/]https://docs.flexsim.com/en/20.2/Reference/Tools/ExcelInterface/[/url][/color]。Excel 就是一个很好的例子,因为大多数人都拥有它,并且很容易获得它的驱动程序。[/font][/color][/align][b]连接字符串[/b][align=left][color=rgb(51, 51, 51)][font="]不同类型的连接需要不同的连接字符串。以下列表包含一些数据源的示例连接字符串:[/font][/color][/align][b]Excel[/b][list=1]
[*][color=#66066]Driver[/color][color=#66660]={[/color][color=#66066]Microsoft[/color][color=#000] [/color][color=#66066]Excel[/color][color=#000] [/color][color=#66066]Driver[/color][color=#000] [/color][color=#66660](*.[/color][color=#000]xls[/color][color=#66660],[/color][color=#000] [/color][color=#66660]*.[/color][color=#000]xlsx[/color][color=#66660],[/color][color=#000] [/color][color=#66660]*.[/color][color=#000]xlsm[/color][color=#66660],[/color][color=#000] [/color][color=#66660]*.[/color][color=#000]xlsb[/color][color=#66660])};[/color][color=#000]DBQ[/color][color=#66660]=[/color][color=#66066]Path[/color][color=#000]\To\Excel\File[/color][color=#66660].[/color][color=#000]xlsx[/color]
[/list][b]Access[/b][list=1]
[*][color=#66066]Driver[/color][color=#66660]={[/color][color=#66066]Microsoft[/color][color=#000] [/color][color=#66066]Access[/color][color=#000] [/color][color=#66066]Driver[/color][color=#000] [/color][color=#66660](*.[/color][color=#000]mdb[/color][color=#66660],[/color][color=#000] [/color][color=#66660]*.[/color][color=#000]accdb[/color][color=#66660])};[/color][color=#000]DBQ[/color][color=#66660]=[/color][color=#66066]Path[/color][color=#000]\To\Access[/color][color=#66660].[/color][color=#000]accdb[/color]
[/list][b]SQLite[/b][list=1]
[*][color=#66066]Driver[/color][color=#66660]={[/color][color=#66066]SQLite3[/color][color=#000] ODBC [/color][color=#66066]Driver[/color][color=#66660]};[/color][color=#66066]Database[/color][color=#66660]=[/color][color=#66066]Path[/color][color=#000]\to\sqlite[/color][color=#66660].[/color][color=#000]db[/color]
[/list][b]SAP HANA[/b][list=1]
[*][color=#000]DRIVER[/color][color=#66660]={[/color][color=#000]HDBODBC[/color][color=#66660]};[/color][color=#000]UID[/color][color=#66660]=[/color][color=#000]myUser[/color][color=#66660];[/color][color=#000]PWD[/color][color=#66660]=[/color][color=#000]myPassword[/color][color=#66660];[/color][color=#000]SERVERNODE[/color][color=#66660]=[/color][color=#000]myServer[/color][color=#66660]:[/color][color=#06666]30015[/color]
[/list][b]检查驱动程序[/b][align=left][color=rgb(51, 51, 51)][font="]请注意,每个连接字符串都指定了一个驱动程序,然后是其他信息。附加信息取决于您使用的驱动程序。为了确定您的系统上有哪些驱动程序,您需要打开 ODBC 数据源管理器窗口。为此,请按 Windows 键,然后键入 ODBC。然后选择名为 ODBC 数据源(64 位)的选项。如果您运行的是 32 位 FlexSim,请打开 32 位版本。[/font][/color][/align][align=left][color=rgb(51, 51, 51)][font="]转到“驱动程序”选项卡。这是我的“驱动程序”选项卡的样子:[/font][/color][/align][align=left][color=rgb(51, 51, 51)][font="][color=#3b73b9][url=https://answers.flexsim.com/storage/attachments/32525-1599858427667.png]https://answers.flexsim.com/storage/attachments/32525-1599858427667.png[/url][/color][/font][/color][/align][align=left][color=rgb(51, 51, 51)][font="]你可以看到我有 Access、Excel、SQL Server 和 SQLite3 的驱动程序。我没有 SAP HANA 的驱动程序。如果我这样做了,您会在列表中看到一个名为 HDBODBC 的驱动程序。要访问那种数据库,我需要安装那个驱动程序。[/font][/color][/align][align=left][color=rgb(51, 51, 51)][font="]您还可以看到连接字符串使用的驱动程序的名称必须与此处显示的完全匹配。[/font][/color][/align][b]其他信息[/b][align=left][color=rgb(51, 51, 51)][font="]当您测试与数据库的连接时,您可能会看到出现异常。如果视图显示连接成功,那么就已经成功了。发生异常是因为 FlexSim 试图从它正在查询的数据库中获取表列表。FlexSim 可能无法正确猜测您的特定数据源。可以安全地忽略该异常。[/font][/color][/align][align=left][color=rgb(51, 51, 51)][font="]如果您过去使用过旧的 db() 命令,请考虑升级为使用数据库连接器。读取整个表格会快几个数量级。[/font][/color][/align]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注公众号

相关侵权、举报、投诉及建议等,请发 E-mail:admin@discuz.vip

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.|京ICP备14043114号-2

在本版发帖
关注公众号
QQ客服返回顶部