文章
· 八月 19, 2023 阅读大约需 1 分钟

第三章 IRIS 编程简介 - SQL

第三章 IRIS 编程简介 - SQL

SQL

IRIS 提供了 SQL 的实现,称为 SQL。可以在方法和例程中使用 SQL

ObjectScript 使用 SQL

可以使用以下一种或两种方式从 ObjectScript 执行 SQL

  • 动态 SQL%SQL.Statement%SQL.StatementResult 类),如下例所示:
 SET myquery = "SELECT TOP 5 Name, Title FROM Sample.Employee ORDER BY Salary"
 SET tStatement = ##class(%SQL.Statement).%New()
 SET tStatus = tStatement.%Prepare(myquery)
 SET rset = tStatement.%Execute()
 DO rset.%Display()
 WRITE !,"End of data"

可以在 ObjectScript 方法和例程中使用动态 SQL

  • 嵌入式SQL,如下例所示:
 &sql(SELECT COUNT(*) INTO :myvar FROM Sample.Employee)
    IF SQLCODE<0 {WRITE "SQLCODE error ",SQLCODE," ",%msg  QUIT}
    ELSEIF SQLCODE=100 {WRITE "Query returns no results"  QUIT}
 WRITE myvar

第一行是嵌入式 SQL,它执行 SQL 查询并将值写入名为 myvar 的主变量中。

下一行是普通的ObjectScript;它只是写入变量 myvar 的值。

可以在 ObjectScript 方法和例程中使用嵌入式 SQL

Python 使用 SQL

Python 使用 SQL 与从 ObjectScript 使用动态 SQL 类似。可以使用以下一种或两种方式从 Python 执行 SQL

  • 可以直接执行SQL查询,如下例所示:
import iris
rset = iris.sql.exec("SELECT * FROM Sample.Employee ORDER BY Salary") 
for row in rset:
    print(row)

第二行执行 SQL 查询并返回存储在变量 rset 中的结果集。

  • 也可以先准备 SQL 查询,然后执行它,如下例所示:
import iris
statement = iris.sql.prepare("SELECT * FROM Sample.Employee ORDER BY Salary")
rset = statement.execute()
for row in rset:
    print(row)

在此示例中,第二行返回一个 SQL 查询,该查询在第三行上执行以返回结果集。

可以使用这两种方法之一在 Python 终端或 Python 方法中执行 SQL 查询。

讨论 (0)1
登录或注册以继续