CoInitialize(NULL);
   _ConnectionPtr Conn(__uuidof(Connection));
   _RecordsetPtr Rct(__uuidof(Recordset));   Conn->ConnectionString="uid=;pwd=;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=student.mdb;";
   Conn->Open("","","",adConnectUnspecified);
   try
   {
CString m_name="id";
int m_number=789;
       _bstr_t str2="insert into std(name,number) values(m_name,m_number)";
Conn->Execute(str2,NULL,adCmdText);    }
   catch(_com_error e)
    {
e.Description();
         return;
    }
Rct->Close();
Conn->Close();
Rct.Release();
Conn.Release();
CoUninitialize();以上是我随便写的一个向数据库中插入数据的测试,但数据无法插入到std表中,错误提示说是INSERT INTO语句有问题,不过INSERT INTO也没问题啊,我连的是ACCESS数据库
谢谢高手指点啊~~~~~~

解决方案 »

  1.   

    _bstr_t str2="insert into std(name,number) values(m_name,m_number)";
    这句错了,改为下面试试:
    _bstr_t str2="insert into std(name,number) values('" + m_name + "'" + ",m_number)";
      

  2.   

    另外就是字段长度了
    我试过
    长度过长,在access内部执行自动截断,但用ado执行就报错
      

  3.   

    我按照fulingwei(flw)你说的那么改了,不过还是不行呀~~
    我也按照shakaqrj(我是菜鸟)你说的那么改了,不过新的错误出来了,参数不足,我看过数据库里的字段和程序里的一样啊~~~~~
      

  4.   

    字段名用[]括起来, 
    假设
    CString szSQl;
    CString m_name="hello";
    int m_number = 6;szSQl.Fromat"insert into std([name],[number]) values('%s',%d)", m_name ,m_number);
    Conn->Execute(_bstr_t(szSQl),NULL,adCmdText);
      

  5.   

    汗,m_number没有展开呢
    就像ls一样的改,不过,我还是习惯用“\'”