Форум программистов, компьютерный форум, киберфорум
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. Показов 1900. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru