0 / 0 / 0
Регистрация: 05.03.2017
Сообщений: 7

DBLookUpComboBox и ADOTable. Добавление записи

06.03.2017, 00:05. Показов 2497. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени!
Такая проблема возникла.
Использую ADOTable.
При попытке добавлении новой записи в таблицу, как только щелкаю DBLookUpComboBox, чтобы выбрать данные из связанной таблицы, пропадает пустая добавленная строка и во все поля подтягиваются предыдущие данные.
Как быть? Что не так делаю? (Не использовать ADOQuery).
Прилагаю архив.
Вложения
Тип файла: rar 12345.rar (542.2 Кб, 19 просмотров)
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.03.2017, 00:05
Ответы с готовыми решениями:

AdoDataSet. Добавление новой записи (insert) и связь DBLookupComboBox
Всем доброго времени суток. Имеется такая не большая проблема. В общем, есть форма, с дбгридом, отражает таблицу "список заказов"...

Добавление записи из dblookupcombobox
Проблема в том, что запись из dblookupcombobox не записывается в таблицу. Добавление записи произвожу вот так: datamodul.q1.insert;

ADOTable добавление в таблицу
Есть какой нибудь способ добавлять/изменять данные таблицы через ADO?

9
0 / 0 / 0
Регистрация: 05.03.2017
Сообщений: 7
06.03.2017, 17:40  [ТС]
Решил попробовать использовать ADOQuery.
Связал таблицы.
И опять же, как только щелкаю по DBLookUpComboBox, то пропадает добавленная строка.
В чем же дело?
0
5 / 5 / 4
Регистрация: 26.05.2013
Сообщений: 103
06.03.2017, 18:46
На первой форме на кнопке Добавить оставить только
C++
1
Form2->ShowModal();
На второй форме на кнопку Добавить:
C++
1
2
3
4
5
6
Form1->ADOQuery1->Insert();
        Form1->ADOQuery1->FieldByName("Имя_столбца")->AsString=Form2->DBLookupComboBox1->Text;
        Form1->ADOQuery1->FieldByName("Имя_столбца")->AsString=Form2->DBLookupComboBox4->Text;
        Form1->ADOQuery1->FieldByName("Имя_столбца")->AsString=Form2->DBEdit1->Text;
//и так далее
Form1->ADOQuery1->Post();
1
0 / 0 / 0
Регистрация: 05.03.2017
Сообщений: 7
06.03.2017, 22:04  [ТС]
Цитата Сообщение от zena1 Посмотреть сообщение
На второй форме на кнопку Добавить
Как я смогу вносить данные, если Insert() будет только по нажатию кнопки.
В DBEdit'ах ведь будут данные предыдущей записи.
0
0 / 0 / 0
Регистрация: 05.03.2017
Сообщений: 7
08.03.2017, 00:02  [ТС]
О боже, дошло наконец-то. Вот это я Валенок! zena1, Спасибо!
0
0 / 0 / 0
Регистрация: 05.03.2017
Сообщений: 7
08.03.2017, 00:30  [ТС]
Появилась новая проблема.
Как только выбираю нужного мне Автора на второй форме, то последующие DBLookUpComboBox'ы содержат только одно значение.
Миниатюры
DBLookUpComboBox и ADOTable. Добавление записи   DBLookUpComboBox и ADOTable. Добавление записи  
0
5 / 5 / 4
Регистрация: 26.05.2013
Сообщений: 103
08.03.2017, 09:35
Цитата Сообщение от Таракан Кузя Посмотреть сообщение
Появилась новая проблема.
Как только выбираю нужного мне Автора на второй форме, то последующие DBLookUpComboBox'ы содержат только одно значение.
Потому что другие таблицы связаны с первой. Связи у Вас прописаны в Mastersource, Masterfield компонента ADOTable/ADOQuery. Оставьте эти поля пустыми.
0
0 / 0 / 0
Регистрация: 05.03.2017
Сообщений: 7
09.03.2017, 19:08  [ТС]
Цитата Сообщение от zena1 Посмотреть сообщение
Связи у Вас прописаны в Mastersource, Masterfield
Тогда как у меня на форме будут взаимодействовать подключенные DBGrid'ы?
Например, выбираю одну запись в DBGrid1 и в DBGrid2/DBGrid3/DBGrid4/DBGrid5 показываются данные от этой записи.
0
5 / 5 / 4
Регистрация: 26.05.2013
Сообщений: 103
09.03.2017, 19:44
Лучший ответ Сообщение было отмечено Таракан Кузя как решение

Решение

Цитата Сообщение от Таракан Кузя Посмотреть сообщение
Тогда как у меня на форме будут взаимодействовать подключенные DBGrid'ы?
Например, выбираю одну запись в DBGrid1 и в DBGrid2/DBGrid3/DBGrid4/DBGrid5 показываются данные от этой записи.
Можно завести для второй формы свои ADOTable и через них подключить эдиты и комбобоксы.
Если используете ADOQuery, то убирать ключевое поле в запросе, т.е. заменить:
C++
1
ADOQuery1->SQL->Text="Select* FROM имя таблицы WHERE (ключевое поле=:Code)"
;
на
C++
1
ADOQuery1->SQL->Text="Select* FROM имя таблицы ";
1
0 / 0 / 0
Регистрация: 05.03.2017
Сообщений: 7
10.03.2017, 16:54  [ТС]
Спасибо за помощь.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.03.2017, 16:54
Помогаю со студенческими работами здесь

Добавление полей в ADOTable
Здравствуйте! Подскажите, можно ли КОДОМ добавить поля в ADOTable/ADOQuery, либо удалить поля. Т.е. например у меня есть две таблицы в...

Добавление и удаление записей из таблиц (ADOTable)
Подключена у меня БД при помощи ADOTable. Так вот, какой нужен код для добавление и удаления записей из таблиц?

ADOTable добавление данных из простых компонентов?
Подскажите пожалуйста как как мне скопировать данные из ValueListEditor в Базу Данных пользуясь ADOTable.... ...

добавление записей в цикле из edit (adotable, access)
Здравствуйте! Есть форма для ввода пользователем учебных предметов. Сначала пользователь вводит кол-во предметов( например 3). Появляется...

Редактирование последней записи в ADOtable
Здравствуйте, подключила из Access таблицу Журнал посещения.Прописала код добавления этого посещения. При входе в приложение все нормально...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru