如何使用 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)";
当我这样做时出现以下错误:
Database error:Too few parameters.Expected 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;
}
如您所见:
- 使用
[
和 ]
包裹 table 和字段名称以解决任何空格问题。
- 首先限定字段名称 - 特别是如果您只填充某些字段值。
- 用 单引号 .
包裹 字符串 值
所以:
SqlString = "INSERT INTO Table3 (Name,Numbers) VALUES (name,099)";
会是这样的:
SqlString = "INSERT INTO [Table3] ([Name],[Numbers]) VALUES ('name',099)";
不过,您的 table / 字段名称不需要方括号。
如何在 Microsoft Access 中插入记录?
CString SqlString; CString name="I want to add this variable in Table3"; SqlString = "INSERT INTO Table3 (Name,Numbers) VALUES (name,099)";
当我这样做时出现以下错误:
Database error:Too few parameters.Expected 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;
}
如您所见:
- 使用
[
和]
包裹 table 和字段名称以解决任何空格问题。 - 首先限定字段名称 - 特别是如果您只填充某些字段值。
- 用 单引号 . 包裹 字符串 值
所以:
SqlString = "INSERT INTO Table3 (Name,Numbers) VALUES (name,099)";
会是这样的:
SqlString = "INSERT INTO [Table3] ([Name],[Numbers]) VALUES ('name',099)";
不过,您的 table / 字段名称不需要方括号。