跳转到主要内容

SQL脚本 -- Zope 3内容组件

项目描述

此包为Zope 3应用程序提供SQL脚本内容类型。SQL脚本可以连接以执行SQL语句,并将结果以面向对象的数据结构返回。

详细文档

在SQLScript中使用额外的DTML标签

使用“sqlgroup”插入可选测试

有时使SQL语句的输入可选是有用的。这样做可能很困难,因为不仅必须条件性地插入测试,而且SQL布尔运算符可能需要或不需要插入,这取决于是否已经执行了其他可能的比较。‘sqlgroup’标签自动执行布尔运算符的条件插入。

‘sqlgroup’标签是一个没有属性的块标签。它可以有任意数量的‘and’和‘or’续标签。

假设我们想找到所有有给定名字或昵称的人,并可选择通过城市和最小及最大年龄来约束搜索。假设我们想使所有输入都是可选的。我们可以使用如下DTML源

<dtml-sqlgroup>
  <dtml-sqlgroup>
    <dtml-sqltest name column=nick_name type=nb multiple optional>
  <dtml-or>
    <dtml-sqltest name column=first_name type=nb multiple optional>
  </dtml-sqlgroup>
<dtml-and>
  <dtml-sqltest home_town type=nb optional>
<dtml-and>
  <dtml-if minimum_age>
     age >= <dtml-sqlvar minimum_age type=int>
  </dtml-if>
<dtml-and>
  <dtml-if maximum_age>
     age <= <dtml-sqlvar maximum_age type=int>
  </dtml-if>
</dtml-sqlgroup>

此示例说明了如何嵌套组来控制布尔评估顺序。它还说明了分组功能也可以与“if”标签等其他DTML标签一起使用。

‘sqlgroup’标签检查要插入的文本是否包含除空白字符之外的其他字符。如果是这样,则根据使用“and”或“or”标签来指示的适当布尔运算符插入,否则不插入任何文本。

使用“sqlgroup”插入可选测试

有时使SQL语句的输入可选是有用的。这样做可能很困难,因为不仅必须条件性地插入测试,而且SQL布尔运算符可能需要或不需要插入,这取决于是否已经执行了其他可能的比较。‘sqlgroup’标签自动执行布尔运算符的条件插入。

‘sqlgroup’标签是一个块标签。它可以有任意数量的“and”和“or”续标签。

‘sqlgroup’标签具有一个可选属性,即‘required’,用于指定必须至少包含一个测试的组。当您想确保查询合格,但又想对合格方式非常灵活时,这很有用。

假设我们想查找具有给定姓氏或昵称、城市或最小和最大年龄的人。假设我们希望所有输入都是可选的,但需要要求某些输入。我们可以使用以下DTML源

<dtml-sqlgroup required>
  <dtml-sqlgroup>
    <dtml-sqltest name column=nick_name type=nb multiple optional>
  <dtml-or>
    <dtml-sqltest name column=first_name type=nb multiple optional>
  </dtml-sqlgroup>
<dtml-and>
  <dtml-sqltest home_town type=nb optional>
<dtml-and>
  <dtml-if minimum_age>
     age >= <dtml-sqlvar minimum_age type=int>
  </dtml-if>
<dtml-and>
  <dtml-if maximum_age>
     age <= <dtml-sqlvar maximum_age type=int>
  </dtml-if>
</dtml-sqlgroup>

此示例说明了如何嵌套组来控制布尔评估顺序。它还说明了分组功能也可以与“if”标签等其他DTML标签一起使用。

‘sqlgroup’标签检查要插入的文本是否包含除空白字符之外的其他字符。如果是这样,则根据使用“and”或“or”标签来指示的适当布尔运算符插入,否则不插入任何文本。

使用‘sqlvar’标签插入值

‘sqlvar’标签用于安全地将值插入SQL文本。‘sqlvar’标签与‘var’标签类似,但它将文本格式化参数替换为SQL类型信息。

sqlvar标签具有以下属性

name

要插入的变量的名称。与其他DTML标签一样,‘name=’前缀可以省略,通常也是省略的。

type

要插入的值的 数据类型。此属性是必需的,可以是‘string’、‘int’、‘float’或‘nb’之一。‘nb’数据类型表示一个长度必须大于0的字符串。

optional

一个标志,指示值是可选的。如果一个值是可选的并且没有提供(或当期望非空值时为空),则插入字符串‘null’。

例如,给定以下标签

<dtml-sqlvar x type=nb optional>

如果‘x’的值是

Let\'s do it

则插入的文本是

‘Let’’s do it’

然而,如果省略了x或为空字符串,则插入的值是‘null’。

变更记录

3.5.0 (2009-02-01)

  • 使用zope.container而不是zope.app.container

3.4.1 (2007-10-31)

  • 解决ZopeSecurityPolicy弃用警告。

3.4.0 (2007-10-27)

  • 首次发布独立于主Zope树。

项目详情


下载文件

下载适用于您平台文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

zope.app.sqlscript-3.5.0.tar.gz (19.9 kB 查看散列值)

上传时间

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面