新建表,若数据表中无记录,则执行下列语句 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枚举类型值
结果逐个改这些参数还是不行,后来想起了一个问题: ORACLE如何存储数据的? 新添加的数据并不是立即提交到数据表中,而是先放在缓存中,直到COMMIT后,才会提交到数据表中。 因此当新建的表中刚插入数据时并不能立即查询到,要commit后才行 ! insert into mytable values( ........) ; commit; 这时候再执行上述语句就正常了 !
正常连接数据库后, |
|