ADO中读取记录集中指定字段的值一般有两种方法:
第一种:
FieldsPtr pFields;
pRecordset->get_Fields(&pFields);
pFields->Item[L"COLUMN_NAME"]->Value;
//或pFields->Item[long(index)]->Value;
//其中index为整型或长整型.GetFields()函数返回的是记录集对象的字段集合对象的指针.
第二种:
pRecordset->get_Collect("COLUMN_NAME");
//或pRecordset->get_Collect(long(index));
它们都将返回一个_variant_t类型的值,推荐使用后一种方法.
例如:
int ncol = rset.GetFieldsCount();
while (!rset.IsEOF())
{
for (int i = 0; i < ncol; i++)
{
rset.GetValueString(value, (long)(i));
}
rset.MoveNext();
}
四、了解ADO字段.
一个记录集通常包含多个字段,通过访问记录,我们可以得到很多有用的信息,如字段名,字段的数据类型,定义的宽度,实际占有的宽度等等:
一般用记录集的get_Fields方法取得字段集合对象:
FieldsPtr pFields;
Recordset->get_Fields(&pFields);
然后可以获得相应的字段对象:
long lIndex = 0;
FieldPtr pf = pFields->GetItem(_variant_t(lIndex));
//或: FieldPtr pf = pFields->GetItem("COLUMN_NAME");
字段对象有很多有用的属性,这些可以参考我的源代码或其他相关资料.如:
get_ActualSize(long *pl) //实际宽度
get_Attributes(long *pl) //属性
get_DefinedSize(long *pl) //定义宽度(以字节为单位,如整型为4,长整型为8...)
get_Name(BSTR *pbstr) //字段名
get_Type(DataTypeEnum *pDataType) //数据类型
get_Value(VARIANT *pvar) // 字段的值
第一种:
FieldsPtr pFields;
pRecordset->get_Fields(&pFields);
pFields->Item[L"COLUMN_NAME"]->Value;
//或pFields->Item[long(index)]->Value;
//其中index为整型或长整型.GetFields()函数返回的是记录集对象的字段集合对象的指针.
第二种:
pRecordset->get_Collect("COLUMN_NAME");
//或pRecordset->get_Collect(long(index));
它们都将返回一个_variant_t类型的值,推荐使用后一种方法.
例如:
int ncol = rset.GetFieldsCount();
while (!rset.IsEOF())
{
for (int i = 0; i < ncol; i++)
{
rset.GetValueString(value, (long)(i));
}
rset.MoveNext();
}
四、了解ADO字段.
一个记录集通常包含多个字段,通过访问记录,我们可以得到很多有用的信息,如字段名,字段的数据类型,定义的宽度,实际占有的宽度等等:
一般用记录集的get_Fields方法取得字段集合对象:
FieldsPtr pFields;
Recordset->get_Fields(&pFields);
然后可以获得相应的字段对象:
long lIndex = 0;
FieldPtr pf = pFields->GetItem(_variant_t(lIndex));
//或: FieldPtr pf = pFields->GetItem("COLUMN_NAME");
字段对象有很多有用的属性,这些可以参考我的源代码或其他相关资料.如:
get_ActualSize(long *pl) //实际宽度
get_Attributes(long *pl) //属性
get_DefinedSize(long *pl) //定义宽度(以字节为单位,如整型为4,长整型为8...)
get_Name(BSTR *pbstr) //字段名
get_Type(DataTypeEnum *pDataType) //数据类型
get_Value(VARIANT *pvar) // 字段的值