铂热电阻pt100分度表:关于m_pRecordset->adoEOF的问题

来源:百度文库 编辑:九乡新闻网 时间:2024/02/21 11:16:02

     新建表,若数据表中无记录,则执行下列语句

       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;

         这时候再执行上述语句就正常了 !

   

 

 

正常连接数据库后,