点击或拖拽改变大小

SQLSelect 类

X#
管理一个 SQL 选择语句,从 ODBC 数据源中选择一组行。可以使用 SQLSelect 方法读取、修改或删除这些行。
继承层次
Object
  DataServer
    SQLSelect
      SQLCatalogQuery
      SQLTable

命名空间:  XSharp.VO.SDK
程序集:  XSharp.VOSQLClasses (在 XSharp.VOSQLClasses.dll 中) 版本:2.22 GA
语法
[TypesChangedAttribute]
 CLASS SQLSelect INHERIT DataServer
查看代码

SQLSelect 类型公开以下成员。

构造函数
  名称说明
公共方法SQLSelect
构造一个 SQL 选择对象。
Top
属性
  名称说明
公共属性AppendData
公共属性AppendFlag
**缺少文档 **
公共属性BatchUpdates
公共属性BoF
一个逻辑值,指示服务器是否定位在结果集的开始,即第一行。
(重写 BoF.)
公共属性Clients
**缺少文档**
(继承自 DataServer。)
公共属性ConcurrencyControl
一个常量,标识此数据服务的自动并发控制模式,确定何时以及如何锁定和释放记录:
(继承自 DataServer。)
公共属性Connection
SQLSelect 正在使用的 SQL 连接对象,以操作结果集。
公共属性CursorName
包含游标名称的字符串。
公共属性DBStruct
包含此数据服务器结构的数组。
(重写 DBStruct.)
公共属性Deleted
一个逻辑值,指示当前行是否已被删除。
公共属性EoF
一个逻辑值,指示服务器是否定位在结果集的末尾,即最后一行之后。
(重写 EoF.)
公共属性ErrInfo
一个 SQLErrorInformation 对象。
公共属性FCount
结果集中的列数。-1表示错误。
(重写 FCount.)
公共属性FOUND
一个逻辑值,指示上一次搜索操作是否成功。
公共属性HLStatus
**缺少文档**
(继承自 DataServer。)
公共属性HyperLabel (重写 HyperLabel.)
公共属性IndexColumns
公共属性LastRec (重写 LastRec.)
公共属性lRowModified
公共属性Modified
公共属性MoreResults
一个逻辑值,表示是否还有更多行要检索。
公共属性Name
表示此数据服务名称的字符串。
(继承自 DataServer。)
公共属性NameSym
表示此数据服务名称的符号。
(继承自 DataServer。)
公共属性NativeSQL
一个字符串,包含语句的原生 SQL 文本。
Level 2
公共属性NullAsBlank
一个逻辑值,确定 SQL NULL 值是否是强类型(TRUE)还是非强类型(FALSE,默认值)。
公共属性NumCols
公共属性NumParameters
一个数字值,包含参数的数量。值为-1表示错误。
Level 2
公共属性NumResultColumns
一个数字值,包含结果集中的列数。
公共属性NumSuccessfulRows
一个数字值,包含被删除、追加或更新操作修改的行数。
公共属性PrepFlag
一个逻辑值,指示选择语句是否已经准备好。
公共属性ReadOnly
公共属性RecCount
一个数字值,表示数据服务器中的行数。
(重写 RecCount.)
公共属性RecNo (重写 RecNo.)
公共属性SQLColumns
**缺少文档**
公共属性SqlData
**缺少文档**
公共属性SQLString
一个字符串,表示 SQL 语句文本。
公共属性Statement
一个 SQL 语句对象。
公共属性StatementHandle
一个表示语句句柄的数值。
公共属性代码示例Status
一个超链接对象,用于标识最后一次操作后的状态。
(重写 Status.)
公共属性TableName
一个字符串,表示表的名称。
公共属性TimeStampAsDate
**缺少文档 **
公共属性Used
一个逻辑值,指示当前查询是否处于活动状态。 如果当前查询处于活动状态,返回 TRUE;否则,返回 FALSE。
Top
方法
  名称说明
公共方法AddDateVal
公共方法AddTimeString
公共方法代码示例Append
在缓冲区中创建一个空行;这个空行成为当前位置,并准备好分配数据值。这个缓冲区的 SQLSelect:RecNo 是 SQLSelect:RecCount+1。
(重写 Append(Boolean).)
公共方法AppendRow
插入自上次 SQLSelect:Append() 操作以来在缓冲区中创建的行。
公共方法AsString
返回为此数据服务定义的描述性标签。
(继承自 DataServer。)
公共方法BindColumn 已过时。
公共方法Close
关闭与服务器对应的游标。 请注意,数据库连接不会关闭,只有游标关闭。
(重写 Close.)
公共方法Column
返回指定的 SQL 列。
公共方法ColumnAttributes
返回指定列的 SQL 列属性。
公共方法Commit
保存自上次 Commit() 以来所做的更改(更新和删除)。
(重写 Commit.)
公共方法DataField
返回指定列位置的数据(DataField对象)。
(重写 DataField(__Usual).)
公共方法Delete
删除当前行。
(重写 Delete.)
公共方法DirectSkip
公共方法Error
提供处理数据库处理过程中引发的错误条件的方法。这是一个事件处理程序:它会被其他方法自动调用;开发人员通常不需要调用错误方法,但可能需要替换或修改它。
公共方法代码示例Execute
打开游标。
公共方法ExtendedFetch
提供扩展的获取能力,指定类型和行。
公共方法Fetch
获取下一行。
公共方法FieldGet (重写 FieldGet(__Usual).)
公共方法FieldGetFormatted
根据其字段规范的格式规范,检索指定列的内容。
(重写 FieldGetFormatted(__Usual).)
公共方法FieldHyperLabel
返回指定列的超级标签。
(重写 FieldHyperLabel(__Usual).)
公共方法FieldInfo
检索有关指定列的信息,或为该列设置别名。
公共方法FieldName
返回指定列的名称。请注意,列的超级标签也包含一个名称。
(重写 FieldName(__Usual).)
公共方法FieldPos
返回数据服务器中指定列的位置,作为从1开始的数字。
(重写 FieldPos(__Usual).)
公共方法FieldPut (重写 FieldPut(__Usual, __Usual).)
公共方法FieldSpec
返回指定列的字段规范对象。
(重写 FieldSpec(__Usual).)
公共方法FieldStatus
返回一个超级标签对象,该对象标识最后一次操作后的状态。
(重写 FieldStatus(__Usual).)
公共方法FieldSym
返回指定列的符号名称。请注意,列的超级标签也包含一个名称;这两个名称在 SQL 编辑器生成的代码中是相同的。
(重写 FieldSym(__Usual).)
公共方法FieldValidate
根据指定列的 FieldSpec 的验证规则验证提供的值。
(重写 FieldValidate(__Usual, __Usual).)
公共方法静态成员FindTableName
公共方法FLock (重写 FLock.)
公共方法FreeStmt
根据指定的选项释放语句。
公共方法GetData
检索指定列的内容。
公共方法GetdateVal
公共方法代码示例GetLookupTable
从服务器的两个字段中检索两列值的二维数组。
(重写 GetLookupTable(__Usual, __Usual, __Usual, __Usual).)
公共方法GetStatementOption 已过时。
检索语句选项的当前设置。
公共方法GetTimeStamp
公共方法GetTimeString
公共方法代码示例GoBottom
将数据服务器定位在最后一行。
(重写 GoBottom.)
公共方法GoTo
将数据服务器定位在指定的行号。
(重写 GoTo(Int32).)
公共方法代码示例GoTop
将数据服务器定位在第一行。
(重写 GoTop.)
公共方法LockCurrentRecord (继承自 DataServer。)
公共方法NoIVarGet
提供一个通用的错误拦截,当在任何类中访问不存在的导出实例变量时,系统会自动调用(NoIVarGet)。 在 SQLSelect 类中,它用于实现虚拟列变量。
重要!NoIVarGet()不应直接调用;系统会要求处理无效引用时,才会调用它。
(重写 NoIVarGet(__Usual).)
公共方法NoIVarPut
提供一个通用的错误拦截,当在任何类中对不存在的导出实例变量进行赋值引用时,系统会自动调用(NoIVarPut)。
重要!NoIVarPut()不应直接调用;系统会要求处理无效引用时,才会调用它。
(重写 NoIVarPut(__Usual, __Usual).)
公共方法Notify
提供一个方法,该方法在服务器的操作方法完成某些重要事件后自动调用:列已更改,服务器位置已更改,已完成某些操作。 它的标准实现是向其附加的客户端广播相同的通知。
(重写 Notify(Int32, __Usual).)
公共方法NumResultCols
返回结果集中的列数。
公共方法PostInit
实现窗口的自定义初始化代码。
(继承自 DataServer。)
公共方法代码示例PreExecute
返回由 X# 生成的 SQL 命令。
公共方法PreInit
实现服务的自定义初始化代码。
(继承自 DataServer。)
公共方法Prepare
准备语句。
公共方法Refresh
刷新缓冲区中的当前行,丢弃已经进行的任何更改。
公共方法RegisterClient
将对象注册为此数据服务的客户端,以便它接收来自服务的有关某些操作的通知消息。
(继承自 DataServer。)
公共方法RejectChanges
公共方法Requery
公共方法ReReadRow
公共方法ResetCursor
公共方法ResetNotification
恢复向服务器附加的客户端广播的Notify消息(在调用 SQLSelect:SuspendNotification() 之后)。
(重写 ResetNotification.)
公共方法RLock (重写 RLock(Int32).)
公共方法RLockVerify
提供此方法是为了覆盖从 DataServer 类继承的功能,因为它不适用于 SQLSelect。
(重写 RLockVerify.)
公共方法Rollback
撤销自上次 Commit() 以来所做的更改(更新和删除)。
(重写 Rollback.)
公共方法Seek
移动到控制顺序中具有指定键值的下一条记录。
(继承自 DataServer。)
公共方法SetColumnAttributes
公共方法SetDataField (重写 SetDataField(UInt32, DataField).)
公共方法SetPos 已过时。
公共方法SetPrimaryKey
指定要在需要键的搜索更新或删除操作中用作唯一索引的列。
公共方法SetStatementOption 已过时。
更改语句选项。
公共方法SetTimeStamp
公共方法ShowSQLError
公共方法Skip
相对于当前行向前或向后移动。 (类似于 Skip() 函数)。
(重写 Skip(Int32).)
公共方法SuspendNotification
暂停向服务器的附加客户端广播通知的传播。
(重写 SuspendNotification.)
公共方法UnLock (重写 UnLock(Int32).)
公共方法UnRegisterClient
取消对象作为此数据服务客户端的注册,以便它不再接收来自服务的有关某些操作的通知消息。
(继承自 DataServer。)
公共方法Update
使用另一个服务或表中的数据更新此服务。
(继承自 DataServer。)
公共方法Update(__Usual)
更新当前行或恢复行的原始值。
公共方法UpdateCursor 已过时。
公共方法UpdateKey 已过时。
公共方法UpdateVal 已过时。
Top
备注
一旦在 DataServer 对象中打开了一个 SQL 表,就可以通过 SQLSelect 类的方法对其进行操作:
X#
1oCust:= SQLSelect{"SELECT * FROM customer"}
2oCust:Skip(3)
3? oCust:CustName
4oCust:Delete()
5oCust:Close()
SQL 返回的模型将行和列作为结果集返回,而不是记录和字段。列可以被视为对象的导出实例变量。 它们也可以通过 FieldGet() 和 FieldPut() 方法访问,列通过符号、字符串或数字进行标识:
X#
1oCust := SQLSelect{"SELECT * FROM customer"}
2oCust:CustNo := 1234
3? oCust:CustNo
4oCust:FieldPut(#CustNo, 1234)
5oCust:FieldPut("CustNo", 1234)
6oCust:FieldPut(1, 1234)
7? oCust:FieldGet(#CustNo)
8? oCust:FieldGet("CustNo")
9? oCust:FieldGet(1)
(当然,这些列并不是 SQLSelect 类的真正导出变量。请参阅“对象、类和方法”在程序员指南中的讨论, 了解如何使用 NoIVarGet() 和 NoIVarPut() 方法创建这些“虚拟”导出变量。) 与 DBServer 类不同,SQLSelect 类在创建对象时不会将服务器定位在第一行。但是,当调用引用第一行的方法时,它将自动定位在第一行。 对于支持定位操作(例如,WATCOM)的数据库,使用可滚动游标,定位方法(GoTop(),GoBottom(),Skip(),GoTo())使用驱动程序。 否则,SQLSelect 会在前进时缓冲行,并通过在缓冲区内移动来执行定位方法(用于向后定位)。 有关更多信息,请参阅 SQLConnection:ScrollCsr 访问。要禁用此缓冲,请使用 SQLSelect:BufferData() 方法。 不可能使用 SQLSelect 类来创建数据库表;在打开服务器之前,表必须存在。
提示 提示:
SQLSelect 对象使用的游标类型和锁定模式可以通过以下函数进行控制。 请查阅您使用的 ODBC 驱动程序的文档,以了解此设置对应用程序性能的影响。
SqlSetStmtConcurrency(), SqlSetStmtCursorType(), SqlSetStmtSimulateCursor()
参见