繁体   English   中英

如何使用 MFC 将记录插入 Microsoft Access?

[英]How to insert a record into Microsoft Access using MFC?

如何在 Microsoft Access 中插入记录?

 CString SqlString; CString name="I want to add this variable in Table3"; SqlString = "INSERT INTO Table3 (Name,Numbers) VALUES (name,099)";

当我这样做时,会出现以下错误:

数据库错误:参数太少。预期 1。

这是我自己的应用程序的一个片段:

BOOL CCommunityTalksApp::SetRecordForTalkNumber(int iTalkNumber, UINT uID, CString &rStrError)
{
    CDatabase   *pDatabase;
    CString     strSQL, strField;
    BOOL        bOK;

    pDatabase = theApp.GetDatabase();
    if(pDatabase != nullptr)
    {
        if (iTalkNumber == 9999)
            strField = _T(" ");
        else
            strField.LoadString(uID);
        strSQL.Format(_T("INSERT INTO [Public Talk Titles] ([Theme], [Category], [Talk Number]) VALUES ('%s', 'NS', %d)"), strField, iTalkNumber);

        TRY
        {
            pDatabase->ExecuteSQL((LPCTSTR)strSQL);
            bOK = TRUE;
        }
        CATCH(CDBException, Except)
        {
            rStrError = Except->m_strError;
            bOK = FALSE;
        }
        END_CATCH
    }

    return bOK;
}

如你看到的:

  1. 使用[]包装表和字段名称以解决空格问题。
  2. 首先限定字段名称 - 特别是如果您只填充某些字段值。
  3. 单引号包裹字符串值。

所以:

SqlString = "INSERT INTO Table3 (Name,Numbers) VALUES (name,099)";

会是这样的:

SqlString = "INSERT INTO [Table3] ([Name],[Numbers]) VALUES ('name',099)";

我很欣赏您的表/字段名称不需要方括号。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM