本节提供有关
NdbScanFilter该类的信息。
- 家长班
没有任何
- 儿童班
没有任何
- 描述
-
NdbScanFilter提供了一种为扫描操作指定过滤器的替代方法。由于此接口的开发正在进行中,因此
NdbScanFilter该类的特性可能会在未来的版本中发生变化。 - 方法
-
下表列出了该类的公共方法以及每个方法的用途或用途:
表 2.57 NdbScanFilter 类方法及说明
姓名 描述 NdbScanFilter()构造方法 ~NdbScanFilter()析构方法 begin()开始复合(一组条件) cmp()将列值与任意值进行比较 cmp_param()将列值与提供的参数值进行比较 end()结束化合物 eq()平等测试 ge()测试大于或等于条件 getNdbError()提供对错误信息的访问 getNdbOperation()获取关联的 NdbOperationgt()测试大于条件 isfalse()将化合物中的术语定义为 FALSEisnotnull()测试列值是否不是 NULLisnull()测试列值是否为 NULListrue()将化合物中的术语定义为 TRUEle()测试小于或等于条件 lt()小于条件测试 ne()不平等测试 reset()重置此 NdbScanFilter对象setSqlCmpSemantics()强制使用符合 SQL 的 NULL比较处理
- 类型
-
该类
NdbScanFilter定义了两个公共类型:BinaryCondition:条件的类型,例如下限或上限。Group:逻辑分组运算符,例如ANDorOR。
NdbScanFilter 整数比较方法。
提供了几种方便的方法,当要比较的任意值是整数时
NdbScanFilter,可以用来代替该
方法: ,
,
,
,
, 和
.
cmp()eq()ge()gt()le()lt()ne()
这些方法中的每一个本质上都是一个包装器,
其中包含该方法参数cmp()的适当值
;例如,
定义如下:
BinaryConditionconditionNdbScanFilter::eq()
int eq(int columnId, Uint32 value)
{
return cmp(BinaryCondition::COND_EQ, columnId, &value, 4);
}
- 描述
此方法用于启动复合,并指定用于对构成复合的条件进行分组的逻辑运算符。默认值为
AND。- 签名
int begin ( Group group = AND )- 参数
值
Group:AND、OR、NAND或之一NOR。有关其他信息,请参阅 NdbScanFilter::Group。- 返回值
0关于成功,-1关于失败。
本节提供有关
BinaryCondition数据类型的信息。
- 描述
-
此类型表示基于列值与某个任意值的比较的条件,即绑定条件。此类型的值用作该
cmp()方法的第一个参数。当用于与
COND_EQ、COND_NE、COND_LT、COND_LE、COND_GT或 进行比较时COND_GE,固定长度字符和二进制列值必须以列大小为前缀,并且必须填充到长度。COND_LIKE在、COND_NOTLIKE、COL_AND_MASK_EQ_MASK、COL_AND_MASK_NE_MASK、COL_AND_MASK_EQ_ZERO或COL_AND_MASK_NE_ZERO比较 中使用此类值时,这不是必需的。COND_LIKE使用and 比较的字符串COND_NOTLIKE可以使用模式元字符%and_。有关详细信息,请参阅 NdbScanFilter::cmp()。BIT比较运算符是 ,COL_AND_MASK_EQ_MASK,COL_AND_MASK_NE_MASK,COL_AND_MASK_EQ_ZERO和COL_AND_MASK_NE_ZERO。相应的方法可用于NdbInterpretedCode和NdbOperation; 有关这些方法的更多信息,请参阅 NdbInterpretedCode 按位比较操作。 - 枚举值
-
下表显示了可能的值以及说明:
表 2.58 NdbScanFilter 数据类型值和描述
姓名 描述 列类型比较 COND_EQ平等 ( =)任何 COND_NE不等式 ( <>或!=)任何 COND_LE下限 ( <=)任何 COND_LT严格下界 ( <)任何 COND_GE上限 ( >=)任何 COND_GT严格上限 (>) 任何 COND_LIKELIKE(健康)状况字符串或二进制 COND_NOTLIKENOT LIKE(健康)状况字符串或二进制 COL_AND_MASK_EQ_MASK使用位掩码编辑的列值 AND等于位掩码BITCOL_AND_MASK_NE_MASK使用位掩码编辑的列值 AND不等于位掩码BITCOL_AND_MASK_EQ_ZERO使用位掩码编辑的列值 AND等于零BITCOL_AND_MASK_NE_ZERO使用位掩码编辑的列值 AND不等于零BIT
- 描述
-
此方法用于定义给定值与列值之间的比较。在 NDB 8.0 中,它也可以用来比较两列。(此方法实际上并不执行比较,稍后在执行为其
NdbScanFilter定义的扫描时执行比较。)在许多情况下,如果要比较的值是一个整数,您可以使用
NdbScanFilter为此目的提供的几种便捷方法之一。请参阅 NdbScanFilter 整数比较方法。 - 签名
-
int cmp ( BinaryCondition condition, int columnId, const void* value, Uint32 length = 0 )此外,在 NDB 8.0 中:
int cmp ( BinaryCondition condition, int ColumnId1, int ColumnId2 ) - 参数
-
当用于将值与列进行比较时,此方法采用以下参数:
-
condition:这表示要测试的条件,它将具有列 ID 的列的值columnID与某个任意值进行比较。是condition一个BinaryCondition值;有关允许的值及其表示的关系,请参阅 NdbScanFilter::BinaryCondition。condition值COND_LIKE或COND_NOTLIKE用于将列值与字符串模式进行比较 。 columnId: 这是列的标识符,可以使用Column::getColumnNo()方法获取。-
value:要比较的值,表示为指向 的指针void。使用
COND_LIKEorCOND_NOTLIKE比较条件时, thevalue被视为字符串模式。不得填充此字符串或使用前缀。该字符串value可以包含模式元字符或 “通配符”字符%和_,其含义如下所示:要匹配文字“ % ”或 “ _ ”字符,请使用反斜杠 (
\) 作为转义字符。要匹配文字“ \ ”字符,请使用\\.这些是 SQL
LIKE和NOT LIKE运算符支持的相同通配符,并以相同的方式解释。有关详细信息,请参阅 字符串比较函数和运算符。 length:要比较的值的长度。默认值为0。使用0for thelength与 comparing to 具有相同的效果NULL,即使用isnull()方法。
当用于比较两列时,
cmp()采用以下参数:condition:比较列时要测试的条件。条件可以是BinaryCondition值EQ、NE、LT、LE、GT或中的任何一个GE。不接受其他值。columnID1:要比较的两列中第一列的 ID。columnID1: 第二列的ID。
使用此方法进行比较的列必须属于完全相同的类型。这包括长度、精度、比例和所有其他细节。
-
- 返回值
此方法返回一个整数:
0成功和-1失败。
- 描述
-
此方法用于定义列值与具有指定 ID 的参数值之间的比较。
NdbScanFilter比较实际上是在执行为其定义 的扫描时执行的 。此方法是在 NDB 8.0.27 中添加的。
- 签名
int cmp_param() ( BinaryCondition condition, int colId, int paramId )- 参数
-
当用于将值与列进行比较时,此方法采用以下参数:
-
condition:这表示要测试的条件,它将具有列 ID 的列的值columnID与某个任意值进行比较。是condition一个BinaryCondition值;有关允许的值及其表示的关系,请参阅 NdbScanFilter::BinaryCondition。condition值COND_LIKE或COND_NOTLIKE用于将列值与字符串模式进行比较 。 colId: 这是列的标识符,可以使用Column::getColumnNo()方法获取。paramId:要比较其值的参数的ID。
使用此方法进行比较的值必须属于完全相同的类型。这包括长度、精度、比例和所有其他细节。
-
- 返回值
此方法返回一个整数:
0成功和-1失败。
- 描述
这是 的构造函数方法
NdbScanFilter,并创建该类的一个新实例。- 签名
NdbScanFilter ( class NdbOperation* op )- 参数
此方法采用单个参数,即指向
NdbOperation应用过滤器的指针。- 返回值
的新实例
NdbScanFilter。- 析构函数
析构函数不接受任何参数,也不返回值。
NdbScanFilter当不再需要对象时 ,应该调用它来删除 对象。
- 描述
此方法用于对列值和整数执行相等性测试。
- 签名
-
int eq ( int ColId, Uint32 value )或者
int eq ( int ColId, Uint64 value ) - 参数
-
此方法有两个参数,列在此处:
ColId待测值列的 ID( )用于比较列值的整数;这个整数可以是 32 位或 64 位,并且在任何一种情况下都是无符号的。
- 返回值
返回
0成功或-1失败。
- 描述
此方法用于对列值和整数执行大于或等于测试。
- 签名
-
此方法接受 32 位和 64 位值,如下所示:
int ge ( int ColId, Uint32 value ) int ge ( int ColId, Uint64 value ) - 参数
-
与
eq()、lt()、le()和该类型的其他NdbScanFilter方法一样,此方法有两个参数:ColId待测值列的 ID( )用于比较列值的整数;这个整数可以是 32 位或 64 位,并且在任何一种情况下都是无符号的。
- 返回值
0成功时;-1失败时。
- 描述
因为构建时遇到的错误
NdbScanFilter不会传播到任何涉及 的NdbOperation对象,所以有必要使用此方法来访问错误信息。- 签名
const NdbError& getNdbError ( void )- 参数
没有。
- 返回值
对
NdbError.
- 描述
如果
NdbScanFilter是用 构造的NdbOperation,则此方法可用于获取指向该NdbOperation对象的指针。- 签名
NdbOperation* getNdbOperation ( void )- 参数
没有。
- 返回值
指向
NdbOperation与 this 关联的指针NdbScanFilter(如果有的话)。否则,NULL。
本节提供有关
Group数据类型的信息。
- 描述
此类型用于描述逻辑(分组)运算符,并与
begin()方法一起使用。(参见 NdbScanFilter::begin()。)- 枚举值
-
下表显示了可能的值以及说明:
表 2.60 NdbScanFilter::Group 数据类型值和描述
价值 描述 AND逻辑 AND:AANDBANDCOR逻辑 OR:AORBORCNAND逻辑 NOT AND:NOT (AANDBANDC)NOR逻辑 NOT OR:NOT (AORBORC)
- 描述
此方法用于对列值和整数执行大于(严格上限)测试。
- 签名
-
此方法适用于 32 位和 64 位值:
int gt ( int ColId, Uint32 value ) int gt ( int ColId, Uint64 value ) - 参数
-
与该类型的其他
NdbScanFilter方法一样,此方法有两个参数:ColId待测值列的 ID( )用于比较列值的整数;这个整数可以是 32 位或 64 位,并且在任何一种情况下都是无符号的。
- 返回值
0成功时;-1失败时。
- 描述
此方法用于对列值和整数执行小于或等于测试。
- 签名
此方法有两种变体,以适应 32 位和 64 位值:
int le
(
int ColId,
Uint32 value
)
int le
(
int ColId,
Uint64 value
)
- 参数
-
与该类型的其他
NdbScanFilter方法一样,此方法有两个参数:ColId待测值列的 ID( )用于比较列值的整数;这个整数可以是 32 位或 64 位,并且在任何一种情况下都是无符号的。
- 返回值
返回
0成功或-1失败。
- 描述
此方法用于对列值和整数执行不等式测试。
- 签名
-
此方法有 32 位和 64 位变体,如下所示:
int ne ( int ColId, Uint32 value ) int ne ( int ColId, Uint64 value ) - 参数
-
与此类型
eq()的其他NdbScanFilter方法一样,此方法有两个参数:ColId待测值列的 ID( )用于比较列值的整数;这个整数可以是 32 位或 64 位,并且在任何一种情况下都是无符号的。
- 返回值
返回
0成功或-1失败。
- 描述
此方法重置
NdbScanFilter对象,丢弃任何先前的过滤器定义和错误状态。- 签名
void reset ( void )- 参数
没有。
- 返回值
没有。
reset()NULL对由 设置的符合 SQL 的比较模式
没有影响
setSqlCmpSemantics()。
NDB 8.0 中添加了此方法。
- 描述
-
传统上,在进行涉及 的比较时
NULL,NdbScanFilter将NULL视为等于NULL(因此认为NULL == NULL是TRUE)。这与 SQL 标准指定的不同,后者要求与NULLreturn进行任何比较NULL,包括NULL == NULL.从 NDB 8.0.26 开始,可以通过调用不带参数的方法来覆盖此行为。这样做会导致
NdbScanFilter创建下一个对象,以便在其整个生命周期内对其所有操作使用符合 SQL 的NULL比较。setSqlCmpSemantics()一旦被调用,就不能取消设置 ;调用reset()在这方面没有效果。NdbScanFilter此方法的效果仅扩展到要创建的下一个实例 ;setSqlCmpSemantics()除非事先调用 ,否则任何后续实例都使用传统的比较模式。该方法对
NULL排序没有影响;NdbScanFilter总是被认为NULL小于任何其他值。 - 签名
void setSqlCmpSemantics ( void )- 参数
没有任何
- 返回值
没有任何
此方法是在 NDB 8.0.26 中添加的。