数据库的连接全是在一个OnButton()里实现的如下:_ConnectionPtr pMyConnect=NULL;//全局
_RecordsetPtr m_pRecordset;
_CommandPtr m_pCommand;OnButton()
{
.....................//初使化connection,recordset,
.....................//
m_pCommand.CreateInstance(__uuidof(Command));//初使化command
 m_pCommand->ActiveConnection=pMyConnect; // 将库连接赋于它
m_pCommand->CommandText="select 产品代号,喷印代码,车间名称,车间主任,from 表1,表2 where 表1.产品代号=表2.产品代号";
Recordset=m_pCommand->Execute(NULL,NULL,adCmdText);
..................//一些操作
................  }
然后在另一个onButton1()里用到同一个m_pCommand,
{
m_pCommand->CommandText="........."            //一个不同于上面的SQL语句
Recordset=m_pCommand->Execute(NULL,NULL,adCmdText);..................//一些操作
.................}
编译通过,但按BUTTON1时,出现Unhanded excetption,???????????
这个m_pCommand有什么讲究?难道只能用一次?更新查询时又该怎么处理呢?

解决方案 »

  1.   

    先把m_pCommand设为NULL,再CreateInstance,再使用.
      

  2.   

    我改之后,跟踪了一下,是在ONbutton1()里的
    m_pRecordset=m_pCommand->Execute(NULL,NULL,adCmdText);
    有问题
    在OnButton1()里同样加上
    m_pRecordset=NULL;
    m_pRecordset.CreateInstance(__uuidof(Recordset));
    也不行
      

  3.   

    那是因为你的m_pRecordsetPtr没有初始化ActiveConnection,你可以设置一下这个属性对应为你打开的connectionPtr
      

  4.   

    楼上的,你搞错了吧,应该是 m_pCommand->ActiveConnection吧,
    加了一个样,况且我在OnButton()里
    m_pCommand->ActiveConnection=pMyConnect;有过,
    不是这个原因/
      

  5.   

    由于你只OnButton()里初始化了m_pCommand
    如果OnButton()没有运行而直接运行OnButton1()就会出现你说的情况
    你应该在OnButton1()里
    加上
    m_pCommand=NULL;
    m_pCommand.CreateInstance(__uuidof(Command));//初使化command或者别在OnButton()里初始化m_pCommand,把它放在程序初始化里