回复: 查询数据库该走哪条路?我更喜欢使用第三个选项。 原因是最明确的(在我看来),它让我可以控制何时关闭数据库连接(这也是我学到的第一个)。 我使用新 SQL 查询的唯一情况是当我想在后台运行查询时。 如果有某种原因,我可以考虑转向新的 SQL 查询(仅仅“推荐”绝对不足以让我转向它)。
回复: 查询数据库该走哪条路?谢谢@jthi为了你的回答,
我很想在这里听到 JMP 开发人员的声明,因为我在文档中找不到任何内容,
@马丁德梅尔或者@briancorcoran ?
也许可以在文档中添加一些关于数据库不同方式的内容?
回复: 查询数据库该走哪条路?一些额外的文档和正确的工作示例肯定会很有用(也许使用 .sqlite 数据库并将其添加到 $SAMPLE_IMPORT_DATA?)。
这似乎有一些文档,但在脚本索引帮助按钮中没有正确链接https://www.jmp.com/support/help/en/17.0/#page/jmp/sql-messages.shtml#然后我们有这个https://www.jmp.com/support/help/en/17.0/#page/jmp/sql-functions.shtml#ww5089351 。
如果这确实是首选方法(不同方法之间的性能是否经过测试?)我很可能可以开始更改我的脚本以使用 << Run Foreground 解决方案。
回复: 查询数据库该走哪条路?我已经用 New SQL Query 做了一些测试,我觉得它确实有一些很好的功能,这些功能是以我不会真正使用它们的方式实现的,例如与 OnRunComplete/OnRunCanceled/OnError 一起使用的函数必须位于全局命名空间中。 也许我可以编写一些非常通用的函数,可以与这些函数一起使用,但仍然......它是全局名称空间。
它似乎也比打开数据库或执行 SQL 慢(尤其是在查询开始之前),如果您要运行多个小型查询,这可能会成为问题。 也许我在使用新的 SQL 查询时必须以某种方式修改我的 dns 字符串(除了添加 ODBC:)?


我很可能会坚持使用“旧的”查询方法,除非我需要能够在后台运行查询。
回复: 查询数据库该走哪条路?嗨,格奥尔格,贾莫,
新的SQL查询是未来将得到增强的方法,而创建数据库连接和执行sql将主要处于维护(错误修复)模式。 新的 JMP 18+ 计划围绕创建更多数据库访问方法并将连接信息保留为基于 JSL 的数据连接器将使用新的 SQL 查询。 我会让文档知道信息可以更清晰。
我希望这有帮助,
布赖恩·科科伦
JMP开发
回复: 查询数据库该走哪条路?嗨,jthi,
就我而言,速度并不是最重要的,我喜欢“新的sql查询”,因为它的功能,并且因为它在连接字符串和密码方面更安全。
如果未设置首选项“隐藏 ODBC 连接字符串”,则其他两种方法都会将密码逐字放入新表的源脚本中。 “new sql query”保留连接字符串,但将密码更改为“%PWD%”。
如果设置了首选项“隐藏 ODBC 连接字符串”,它将删除脚本 {“源”,“修改查询”,“从数据库更新”},我不喜欢这个,因为 jmp 使用 jmp 连接表很酷数据生成的方式以及更新数据的可能性,这是我经常使用的选项。
在具有不同脚本编写者的公司环境中,很难处理不同的方法(因此根据方法不同的偏好设置)。 它让一切变得复杂。 这就是为什么我喜欢有一个明确的最爱。
查询数据库该走哪条路?各位,
我经常使用数据库查询,并结合自定义 sql。 我知道,有3种方法,如下所示。
我最喜欢“新的sql查询”,因为它最强大,而且更安全(见密码...)。
不幸的是,JMP17 中有关隐藏 ODBC 连接字符串的行为已更改,但将会得到纠正:
首选项“隐藏 ODBC 连接字符串”集上的 JMP17 行为:连接字符串... - JMP 用户社区
在锡切斯的欧洲探索峰会上,开发人员告诉我,新的 sql 查询方法是推荐的方法,更稳定,其他两种方法都已经过时了。 但我也听说有速度问题。 我从来没有读过这个建议,也没有在文档中读过。
我想讨论的是:
您使用什么方法,为什么?
你有哪些经历?
谢谢并致以最诚挚的问候,
格奥尔格
名称默认为此处( 1 ); // 3 种不同的数据库访问方式 // 常量 // 这适用于所有 Oracle DB 的 sql_str = "select * from Dual"; // 需要适应您的数据库 cnx_str ="DSN=MYDSN_NAME;UID=USERNAME;PWD=PASSWORD"; // 新的 sql 查询需要以“ODBC:”开头的连接字符串 // 手册中没有好的文档(脚本指南和 JMP 帮助) qry_obj = New SQL Query( query name("New SQL Query"), connection( " ODBC:"||cnx_str ), 自定义sql( sql_str ) ); dt_sqlquery = qry_obj << 运行前台(); // 打开数据库是一个单行 // 未设置“隐藏 ODBC 连接字符串”,它将明文密码保存到表脚本中 dt_open = open database(cnx_str, sql_str, "Open Database"); // 预计 sql 需要在发送语句之前打开数据库 // 未设置“隐藏 ODBC 连接字符串”,它将明文密码保存到表脚本中 dbc=create Database Connection(cnx_str); dt_execute = 执行sql(dbc, sql_str, "执行SQL");关闭数据库连接(dbc); // EOS自动化和脚本编写