strSQL.Format("update GDKTable set GBHM ='11' where GBHM ='22'");我用的ACCESS 数据库报错"FROM 字句语法错误"
在线等待

解决方案 »

  1.   

    #import "c:\Program Files\Common Files\System\ADO\msado20.tlb"  no_namespace rename("EOF", "EndOfFile")
    #include <windows.h>
    #include <comdef.h>void main()
    {
    ::CoInitialize(NULL);
    _ConnectionPtr   pConnectionPtr;
        _CommandPtr      pCommandPtr;
    try
    {
    pConnectionPtr.CreateInstance (__uuidof(Connection));
    pCommandPtr.CreateInstance (__uuidof(Command));
    _bstr_t strConnect = "Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\\杂项\\db1.mdb;"
            "User Id=管理员;Password=123;Exclusive=1;";
    pConnectionPtr ->Open (strConnect,"","",NULL);
    pCommandPtr ->ActiveConnection = pConnectionPtr;
    pCommandPtr ->CommandType = adCmdText;
    pCommandPtr ->CommandText = "update test set GBHM = '22' where GBHM = '11'";
     pCommandPtr ->Execute (NULL,NULL,adCmdUnknown); 
    #if 0
     _RecordsetPtr    pRecordsetPtr;
     pRecordsetPtr.CreateInstance (__uuidof(Recordset));
     pRecordsetPtr = pCommandPtr ->Execute (NULL,NULL,adCmdUnknown); 
    int iColCnt = pRecordsetPtr->GetFields()->GetCount();
    int iCnt = 0;
    _bstr_t bstrCol;
    iCnt = pRecordsetPtr ->GetRecordCount ();
    while(!pRecordsetPtr->EndOfFile)
    {

    for (int iLoop =0;iLoop <iColCnt;iLoop ++)
    {
    vItem.intVal = iLoop;
    vItemData = pRecordsetPtr->GetFields()->GetItem(vItem)->GetValue();
    }

    pRecordsetPtr ->MoveNext ();
    iCnt ++;
    }
    #endif
    }
    catch(...)
    {
    long errorcount=pConnectionPtr->GetErrors ()->GetCount ();
    if (errorcount<1)
    return ;
    _bstr_t add;
    _variant_t var;
    var.vt = VT_I4;
    for (short i=0;i<errorcount;i++)
    {
    var.intVal = i;
    add=pConnectionPtr->GetErrors ()->GetItem (var)->GetDescription ();
    }
    pConnectionPtr ->GetErrors ()->Clear();
    }
    ::CoUninitialize ();
    }
      

  2.   

    不能贴一个可以使用SQL语句的麽?
    还有我用的是DAO谢谢你勒
      

  3.   

    那个字段是数字还是文本,如果是数字,不要引号的
    直接update GDKTable set GBHM = 11 where GBHM = 22