Как вставить запись в Microsoft Access с помощью 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.

А как насчет реального кода? это даже не правильный синтаксис.

Federico 16.05.2022 21:56

Каков правильный синтаксис? Я просто хочу добавить ввод от пользователя в таблицу доступа ms.

Alo_2 16.05.2022 22:05

Предоставьте достаточно кода, чтобы другие могли лучше понять или воспроизвести проблему.

Community 17.05.2022 02:55

Как отметил @Federico, синтаксис кода, который вы здесь представляете, явно неверен (несоответствие открывающим/закрывающим скобкам и кавычкам), я думаю, он даже не компилируется, не говоря уже о том, чтобы работать правильно. Это настоящий? Вы тестировали свой SQL в MS-Access (Query Design), чтобы увидеть, действительно ли он работает?

Constantine Georgiou 17.05.2022 07:19

Для начала CString name='I want to add this variable in Table3'; -> CString name = "I want to add this variable in Table3";

Jabberwocky 17.05.2022 08:46

Я вставил пример кода, но я просто хочу знать, как добавить переменную в таблицу доступа sql/ms?

Alo_2 17.05.2022 08:57

Я предоставил ответ, но ваш код неполный. Вы даже не показываете, как вы на самом деле фиксируете обновление в базе данных. Поэтому я попытался охватить все базы.

Andrew Truckle 17.05.2022 11:50
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
Четыре эффективных способа центрирования блочных элементов в CSS
Четыре эффективных способа центрирования блочных элементов в CSS
У каждого из нас бывали случаи, когда нам нужно отцентрировать блочный элемент, но мы не знаем, как это сделать. Даже если мы реализуем какой-то...
1
7
43
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 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)";

Я понимаю, что квадратные скобки не нужны для имен ваших таблиц/полей.

Другие вопросы по теме

Похожие вопросы

Включение предварительно скомпилированного заголовка и непредварительно скомпилированного заголовка в файл .cpp приводит к тому, что файл .cpp не распознает непредварительно скомпилированный заголовок.
Привязка rvalue ref к строковому литералу в конструкторе по сравнению с построением на месте
ROOT (CERN): постройте фигуру с планками погрешностей, используя данные из файла csv.
Требуется позиционирование предложения в шаблонах функций C++20.
Как я могу показать блок комментариев внутри блока кода внутри блока doxygen?
Инициализация параметризованного массива вложенных структур C++
Как определить функцию-член специализированного класса шаблона?
Будет ли std::unordered_map::clear() медленнее, чем std::map::clear(), потому что операции очистки «выполняются» в первом?
Как получить из «std::thread::id» тот же идентификатор, что и «идентификатор потока WinAPI» (в Windows)?
C++ IPC Boost::Interprocess вектор классов, содержащих карту