铂热电阻pt100分度表:关于m_pRecordset->adoEOF的问题
来源:百度文库 编辑:九乡新闻网 时间:2024/05/09 09:55:11
新建表,若数据表中无记录,则执行下列语句
while(!m_precodrset->adoEOF)
{
//do something
}
return;
直接执行return;
但是若数据表中新插入一条记录,执行上述语句还是直接return !
上网搜了很多,结果都没解决,有的说是连接数据库的参数问题,即
m_pRecordset->Open("SELECT * FROM MyTable1",(IDispatch *)m_pConnection,adOpenDynamic,adLockOptimistic,adCmdText);
中的参数问题,
_RecordsetPtr Execute ( _bstr_t CommandText, VARIANT * RecordsAffected, long Options )
参数
1. CommandText是命令字符串,通常是SQL命令,也可以是表名、存储过程等
2. RecordsAffected 可选,是操作完成后所影响的行数
3. Options 可选,解释CommandText参数的方式,Options可以是CommandTypeEnum或ExecuteOptionEnum枚举类型值
类型
说明
adCmdUnspecifed=-1
未描述CommandType属性
adCmdText=1
指示提供者应将 CommandText 赋值为命令的文本定义。
adCmdTableDirect
指示提供者应从 CommandText 命名的表中返回所有行。
adCmdTable=2
指示提供者应将 CommandText 赋值为表名。
adCmdStoredProc=4
指示提供者应将 CommandText 赋值为存储过程。
adCmdUnknown=8
指示 CommandText 参数中的命令类型未知。
adExecuteAsync
指示命令应该异步执行。
adFetchAsync
指示 CacheSize 属性指定的初始数量之后的行应异步提取。
结果逐个改这些参数还是不行,后来想起了一个问题:
ORACLE如何存储数据的?
新添加的数据并不是立即提交到数据表中,而是先放在缓存中,直到COMMIT后,才会提交到数据表中。
因此当新建的表中刚插入数据时并不能立即查询到,要commit后才行 !
insert into mytable values( ........) ;
commit;
这时候再执行上述语句就正常了 !
正常连接数据库后,