返回首页

gbase数据、南大通用产品文档:GBase8aGBaseDataReader 类

更新日期:2024年09月11日

代表GBase 数据源中只进且只读的数据流,此类不能被继承。对于该类所
有成员的列表,参考 GBaseDataReader 成员。

继承层次
System.Object
|__ System.MarshalByRefObject
|__ System.Data.Common.DbDataReader
|__ GBase.Data.GBaseClient.GBaseDataReader


语法
[ Visual Basic ]
Public NotInheritable Class GBaseDataReader _

Inherits DbDataReader _

Implements IDataReader, IDisposable, IDataRecord
[ C# ]
public sealed class GBaseDataReader : DbDataReader,

IDataReader, IDisposable, IDataRecord

必要条件
命名空间:GBase.Data.GBaseClient

线程安全性
这个类型的公共静态成员(在Visual Basic 中为 Shared)对于多线程操
作是保证线程安全的,对于实例不保证线程安全性。

注释

GBase 8a 程序员手册ADO.NET 篇


- 204 -

南大通用数据技术股份有限公司
要创建一个GBaseDataReader,用户必须调用GBaseCommand 对象的
ExecuteReader 方法。
IsClosed 和 RecordsAffected 是唯一能够在GBaseDataReader 关闭后调
用的属性。尽管RecordsAffected 属性可以在GBaseDataReader 存在的任何时
间访问,也总是在调用了Close 之后才调用RecordsAffected 来保证获得准确
的返回值。
由于GBaseDataReader 提供只进的只读数据访问方式,如果用户试图修改
使用诸如GetValue 返回的数值,就会出现警告。

示例
下面的例子演示创建了GBaseDataReader 对象后,使用GBaseDataReader
对象读取数据并将结果打印到控制台。
[Visual Basic]
Public Sub ReadGsData(gsConnString As String)
Dim
gsSelectQuery
As
String
=
"SELECT
OrderID,
CustomerID
FROM"_
&"Orders"
Dim gsConnection As New GBaseConnection(gsConnString)
Dim gsCommand As New GBaseCommand(gsSelectQuery, gsConnection)
gsConnection.Open()
Dim gsReader As GBaseDataReader
gsReader = gsCommand.ExecuteReader()
' Always call Read before accessing data.
While gsReader.Read()
Console.WriteLine((gsReader.GetInt32(0) & ", " &_
gsReader.GetString(1)))
End While
' always call Close when done reading.
gsReader.Close()
' Close the connection when done with it.
gsConnection.Close()
End Sub 'ReadGsData




GBase 8a 程序员手册ADO.NET 篇
南大通用数据技术股份有限公司

- 205 -
[C#]
public void ReadGsData(string gsConnString)
{
string
gsSelectQuery
=
"SELECT
OrderID,
CustomerID
FROM
Orders";
GBaseConnection gsConnection = new
GBaseConnection(gsConnString);
GBaseCommand gsCommand = new
GBaseCommand(gsSelectQuery,gsConnection);
gsConnection.Open();
GBaseDataReader gsReader;
gsReader = gsCommand.ExecuteReader();
//Always call Read before accessing data.
while (gsReader.Read())
{
Console.WriteLine(gsReader.GetInt32(0) + ", " +
gsReader.GetString(1));
}
// always call Close when done reading.
gsReader.Close();
// Close the connection when done with it.
gsConnection.Close();
}

Statement concurrency type is not set to CONCUR_UPDATABLE
试图为尚未使用 CONCUR_UPDATABLE 并发类型创建的语句调用 insertRow() 、
updateRow() 或 deleteRow() 方法。
用这个并发属性设置的类型重新创建语句。



sword GCIDirPathColArrayEntrySet(
GCIDirPathColArray *dpca,
GCIError *errhp,

ub4 rownum,
ub2 colIdx,
ub1 *cvalp,
ub4 clen,
ub1 cflg
);

设置写入文件数据数组上指定位置的数据内容。

参数
输入
/输出


dpca
输入
数据数组描述符指针
errhp
输入
错误信息句柄, 该接口调用失败时, 错误信息会存在该句柄上
rownum
输入
设置的数据内容在数组中的行号
colIdx
输入
设置的数据内容在数组中的列号
cvalp
输入
设置的数据内容缓冲区指针
clen
输入
数据内容的长度
cflg
输入
保留参数, 目前不使用(仅用于和Oracle保持兼容)

如果执行成功, 返回GCI_SUCCESS,否则返回GCI_ERROR。