Как я могу вставить запись в 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.
Каков правильный синтаксис? Я просто хочу добавить ввод от пользователя в таблицу доступа ms.
Предоставьте достаточно кода, чтобы другие могли лучше понять или воспроизвести проблему.
Как отметил @Federico, синтаксис кода, который вы здесь представляете, явно неверен (несоответствие открывающим/закрывающим скобкам и кавычкам), я думаю, он даже не компилируется, не говоря уже о том, чтобы работать правильно. Это настоящий? Вы тестировали свой SQL в MS-Access (Query Design), чтобы увидеть, действительно ли он работает?
Для начала CString name='I want to add this variable in Table3';
-> CString name = "I want to add this variable in Table3";
Я вставил пример кода, но я просто хочу знать, как добавить переменную в таблицу доступа sql/ms?
Я предоставил ответ, но ваш код неполный. Вы даже не показываете, как вы на самом деле фиксируете обновление в базе данных. Поэтому я попытался охватить все базы.
Это фрагмент из моего собственного приложения:
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;
}
Как вы видете:
[
и ]
, чтобы обернуть имена таблиц и полей, чтобы решить любые проблемы с пробелами.Так:
SqlString = "INSERT INTO Table3 (Name,Numbers) VALUES (name,099)";
Было бы что-то вроде:
SqlString = "INSERT INTO [Table3] ([Name],[Numbers]) VALUES ('name',099)";
Я понимаю, что квадратные скобки не нужны для имен ваших таблиц/полей.
А как насчет реального кода? это даже не правильный синтаксис.