Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
 Аватар для dalay_lama
82 / 82 / 50
Регистрация: 22.09.2012
Сообщений: 495

Recordset is not open при попытке добавить запись в Access

21.02.2013, 07:27. Показов 1872. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток.Имею связку подключения adoconnection+adodataset+adocommand. При попытке вставить новую запись получаю вот такую ошибку .

Вот код добавления записи:
C++
1
2
3
4
5
6
7
void RegistrationCostumers(String fio, String address, String date, String telephone)
{
    DataModule1->ADOCommandCustomers->CommandText = "\
    INSERT INTO customers (fio,address,birthday,telephone)\
    VALUES ('Скорик','Арсеньева','27.10.1992','670775');";
    DataModule1->ADODataSetCustomers->Recordset = DataModule1->ADOCommandCustomers->Execute();
}
Объясните пожалуйста, в чём ошибка и как исправить?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.02.2013, 07:27
Ответы с готовыми решениями:

Access Violation при попытке добавить запись в DBMemo
Всем доброго времени суток. Подключён к БД через компоненты, ADOConnection+AdoDataSet+DataSource+DbGrid и ещё DBMemo для отображения поле...

При попытке добавить программно запись в зашифрованную паролем БД MS Access с помощью метода Insert выскакивает ошибка - Неизвестная ошибка
При попытке добавить программно запись в зашифрованную паролем БД MS Access с помощью метода Insert выскакивает ошибка - Неизвестная ошибка...

Ошибка при попытке добавить запись, используя форму
Здравствуйте. Хочу использовать форму для добавления записей, но появляется следующая ошибка: IntegrityError at /mainpage/post/new/ ...

3
6 / 6 / 1
Регистрация: 01.06.2012
Сообщений: 107
21.02.2013, 08:22
Цитата Сообщение от skorik-1992 Посмотреть сообщение
Объясните пожалуйста, в чём ошибка и как исправить?
Да нет по сути у тебя ошибки.
C++
1
2
3
4
5
6
7
void RegistrationCostumers(String fio, String address, String date, String telephone)
{
    DataModule1->ADOCommandCustomers->CommandText = "\
    INSERT INTO customers (fio,address,birthday,telephone)\
    VALUES ('Скорик','Арсеньева','27.10.1992','670775');";
    DataModule1->ADOCommandCustomers->Execute();
}
Вот этот код уже должен добавлять записи к тебе в базу.
C++
1
DataModule1->ADODataSetCustomers->Recordset =
А вот что этой строкой ты хотел сделать я не знаю(( Я так точно никогда не делал.
0
 Аватар для dalay_lama
82 / 82 / 50
Регистрация: 22.09.2012
Сообщений: 495
21.02.2013, 08:40  [ТС]
ADOCommand предназначен для выполнения запросов, которые НЕ ВОЗВРАЩАЮТ набор записей (insert-update-delete). ADODataSet для запросов которые возвращают(SELECT).
When a command is executed that creates a recordset, Execute returns the recordset and it must be accessed through an ADO dataset component. To do this, assign the return value of Execute directly to the recordset property of an ADO data set component. For example:
C++
1
ADODataSet1.RecordSet := ADOCommand1.Execute
Добавлено через 5 минут
Код правда из делфи, но принцып тот же.
Согласен, если без присваивания то запрос выполняется без проблем, но тогда БД не обновляется.

Добавлено через 50 секунд
Код правда из делфи, но принцып тот же.
Согласен, если без присваивания то запрос выполняется без проблем, но это БД не обновляется
0
6 / 6 / 1
Регистрация: 01.06.2012
Сообщений: 107
21.02.2013, 09:54
Ну ты же сам ответил на свой вопрос!...Что ты хочешь вернуть? Там один Инсерт.
Напиши после SELECT 1 as d, и вернёт, вернее там по логики а то справляется с этой логикой аксес хз

на mssql return identityscope() пишешь, и возвращается номер ключевой добавленной записи.

Добавлено через 14 минут
Цитата Сообщение от skorik-1992 Посмотреть сообщение
Добавлено через 50 секунд
Код правда из делфи, но принцып тот же.
Согласен, если без присваивания то запрос выполняется без проблем, но это БД не обновляется
Блин заморочено всё........
Если после запроса нет обновления, походу, не проходит комит. Если программу закрываешь, запись не добавляется в программу? (Если да то попробуй на конектион в запрос влепить ->CommitTrans()
И я вапще не использовал ещё не разу в жизни данный компонент, не нужен он был, использовал strored proc, table, query

И самое простое добавить строку в аксес через table или strored proc(вызывать в аксесе сохранённый запрос)

Добавлено через 12 минут
Можно так, для аксес сгодится AdoTable
указываешь свой Connection, после выбираешь tablename , затем кликаешь дважды по компоненту и в открывшемся окне правой конопкой добавить все поля
После берёшь пишешь на свою кнопку добавления код
C++
1
2
3
4
AdoTable->active=true;
AdoTable->insert();
NameПоля которые добавил правой кнопкой->Text="Значение поля";
AdoTable->post();
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.02.2013, 09:54
Помогаю со студенческими работами здесь

Ошибка при попытке обработать SQL-запрос из recordset
Здравствуйте! Задача выбрать нужные поля из таблиц и поместить их в ListBox При попытке обработать SQL-запрос лезет такая ошибка Сам...

При выполнении recordset.Open если name!=Request('Name') IE выкидывает матюги
Доброе время суток! Пример: <% var database = Server.CreateObject('ADODB.Connection'); var recordset =...

При попытке создать объект ADODB.Recordset зависает IIS .
Web Сервер на базе Win2000/IIS Подключаюсь с ASP страницы через VBScript к ODBC источнику (Btrieve база данных). Обьект...

При попытке создать recordset вылетает ошибка RDS Handler'а
При попытке создать recordset вылетает ошибка RDS Handler'а. Кто-нибудь с этим сталкивался?

при попытке организовать поиск по базе с разбиением на страницы выдается ошибка ADODB.Recordset (0x800A0BCD)
есть база данных, при попытке организовать поис с разбиением на страницы выдается ошибка ADODB.Recordset (0x800A0BCD) Either BOF or EOF...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru