ADO访问access数据库,该怎么处理
ADO访问access数据库
大侠们,求教一个问题:
我使用ADO方式操作access数据库,现在要处理这么一个问题:按照字段 “序号”升序方式,找出初始状态下的序号最大值,
//设置查询字符串
_bstr_t bstrSQL = "select * from table1 order by 序号 asc";
//创建记录集指针对象实例
m_pRecordset.CreateInstance(__uuidof(Recordset));
//打开记录集
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,
adLockOptimistic,adCmdText);
while(!m_pRecordset->adoEOF)
{
CString strNum;
strNum = (char*)(_bstr_t)m_pRecordset133->GetCollect("序号");
nMaxInit = atoi(strNum);
//将记录集指针移动到下一条记录
m_pRecordset->MoveNext();
}
//关闭数据库连接
ExitConnect();
若序号为1 2 3 4 5 6 7 8 9 10 11,找出了最大值为nMaxInit=9;若序号为001 002 003 004 005 006 007 008 009 010 011,找出了最大值才为nMaxInit=11。断点调试时发现:第一种方式移动到序号2后,直接跳到10,、11然后又回到了3,最后得到的值为9。求解为什么啊?
------解决方案--------------------
如果只找最大的序号不需要这样弄
_bstr_t bstrSQL = "select * from table1 order by 序号 desc";
第一条就是
大侠们,求教一个问题:
我使用ADO方式操作access数据库,现在要处理这么一个问题:按照字段 “序号”升序方式,找出初始状态下的序号最大值,
//设置查询字符串
_bstr_t bstrSQL = "select * from table1 order by 序号 asc";
//创建记录集指针对象实例
m_pRecordset.CreateInstance(__uuidof(Recordset));
//打开记录集
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,
adLockOptimistic,adCmdText);
while(!m_pRecordset->adoEOF)
{
CString strNum;
strNum = (char*)(_bstr_t)m_pRecordset133->GetCollect("序号");
nMaxInit = atoi(strNum);
//将记录集指针移动到下一条记录
m_pRecordset->MoveNext();
}
//关闭数据库连接
ExitConnect();
若序号为1 2 3 4 5 6 7 8 9 10 11,找出了最大值为nMaxInit=9;若序号为001 002 003 004 005 006 007 008 009 010 011,找出了最大值才为nMaxInit=11。断点调试时发现:第一种方式移动到序号2后,直接跳到10,、11然后又回到了3,最后得到的值为9。求解为什么啊?
access
select
ADO
指针
------解决方案--------------------
如果只找最大的序号不需要这样弄
_bstr_t bstrSQL = "select * from table1 order by 序号 desc";
第一条就是