对于记录集对象属性设置为:
Set m_Rs = New ADODB.Recordset
m_Rs.CursorLocation = adUseClient
m_Rs.CursorType = adOpenStatic
....
查询后我想获得记录总数,执行m_Rs.MoveLast却提示“行集不支持反向提取”,郁闷,请大家指教。
如果想判断是否有记录返回,我该如何做了?这样可以吗:
If Not m_Rs.EOF Then
nCord = m_Rs.RecordCount
ELSEENDIF
Set m_Rs = New ADODB.Recordset
m_Rs.CursorLocation = adUseClient
m_Rs.CursorType = adOpenStatic
....
查询后我想获得记录总数,执行m_Rs.MoveLast却提示“行集不支持反向提取”,郁闷,请大家指教。
如果想判断是否有记录返回,我该如何做了?这样可以吗:
If Not m_Rs.EOF Then
nCord = m_Rs.RecordCount
ELSEENDIF
==================================
m_Rs.CursorType = adOpenDynamic,还是提示“行集不支持反向提取”,郁闷
Dim rsTable As New ADODB.Recordset
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\eastport\data\system.mdb;Persist Security Info=False;Jet OLEDB:Database Password="
pubConn.Open strConn
rsTable.CursorLocation = adUseClient
strSQL = "select top 10 * from dw"
rsTable.Open strSQL, pubConn, adOpenDynamic, adLockOptimistic
我要达到目的:将VFP的数据表(x.DBF)的记录导入x.MDB数据库
限制条件:由于x.DBF内的某些记录含有Null值(这些记录我不需要),故导出纪录到m_Rs(=m_Con.Execute(cSql)),然后借助m_Rs对象遍历纪录(For I=1 to m_Rs. RecordCount)来剔除包含Null的纪录。
连接VFP操作为:
strConnect = "Provider=VFPOLEDB.1;SourceType=DBF;Data Source=" & cDbfPath
Cn.ConnectionString = strConnect '指定连接字符串
Cn.Open '连接数据库
‘获得查询纪录操作为:
Set m_Rs = New ADODB.Recordset
m_Rs.CursorLocation = adUseClient
m_Rs.CursorType = adOpenStatic
Set m_Rs=m_Con.Execute(cSql) ‘查询语句书写正确m_Rs.MoveLast ’记录指针移到最后记录时出错“行集不支持反向提取”,程序到此为止
nCord = m_Rs.RecordCount ‘获得记录总数
有一个奇怪现象:我想知道是否有记录返回,作了一个对比试验:
试验1:
Set m_Rs=m_Con.Execute(cSql) ‘查询语句书写正确,注意我省略m_Rs.MoveLast语句
nCord = m_Rs.RecordCount ‘获得记录总数=-1(表明没有纪录返回)实验2:
将Set m_Rs=m_Con.Execute(cSql)改为
Set VSGrid.DataSource = m_Con.Execute(cSql) ’ VSGrid为表格控件,有记录返回显示问:执行m_Con.Execute(cSql)语句应该有纪录返回,可是试验1的结果:m_Rs.RecordCount=-1,这是咋回事?盼望高手解答。