Аватар для denisVBNET
141 / 8 / 3
Регистрация: 04.09.2015
Сообщений: 113
1

Добавление записи в DBGrid и получение записи в DBGrid Другой формы

04.03.2016, 15:15. Показов 4878. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
К проекту подключена Access .mdb БД. Имеется 2 формы. На обоих формах есть DBGrid. Как сделать, что бы при добавлении записи в таблицу из одной формы эта запись появлялась и в DBGrid другой формы. В первом на Form1 она появляется.

Добавлено через 7 минут
C++
1
2
3
4
5
ADOTable1->Active=true;
    ADOTable1->Edit();
    ADOTable1->Append();
    ADOTable1->FieldByName("doljnost")->AsString=Edit1->Text;
    ADOTable1->Post();
Вот код добавления первой формы.
Думаю нужно добавить строку, которая будет обновлять данные в другом гриде Form2. Только не знаю как написать.
На обоих формах свои ADOConnect, ADOTable и DataSource. Все подключены к одной и той же базе и к одной таблице.
0
Лучшие ответы (1)
04.03.2016, 15:15
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.03.2016, 15:15
Ответы с готовыми решениями:

Изменение записи в DBGrid из другой формы
на Form1 есть DBGrid, ado. В этой форме пишу: DataSource1->DataSet->Edit(); ADOTable1->Fields->Fields->Value=Edit1->Text; ...

[C++ builder XE] DBGrid. Удаление/добавление/изменение БД mysql через DBGrid
Здравствуйте! Возможно тема заезженная, но не чего путнего не нашел(может так искал!) Нужна помощь в добавлении и изменении...

Отобразить записи в dbgrid
Подключаю бд, с помощью ADOQuery отображаю данные в в dbgrid. Подскажите как после фильтрации отобразить все записи таблицы.

4
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
04.03.2016, 15:37 2
Лучший ответ Сообщение было отмечено denisVBNET как решение

Решение

По пробуй прировнять Datasource1 к DataSource2. А второй DBGrid настроить на DataSource2. И посмотри будет ли одинаковое отображение в обеих гридах или нет..........

Добавлено через 5 минут
Цитата Сообщение от denisVBNET Посмотреть сообщение
ADOTable1->Edit();
* * ADOTable1->Append();
Вот эти записи не много противоречат друг другу потому как Edit() изменяет(правит) строку в таблице, а Append() добавляет новую строку в таблицу
1
 Аватар для denisVBNET
141 / 8 / 3
Регистрация: 04.09.2015
Сообщений: 113
04.03.2016, 19:12  [ТС] 3
Попробую, спасибо. Они может и противоречат, но работают хорошо)
Я работал в Visual Studio VB.NET и там немного попроще было с этим, добавляя в одну форму я писал код на загрузку данных в другую. Код тот же, что работает при открытии формы, а на C++ даже закрыв и заново запустив вторую форму изменений нет. Только после перезапуска приложения появляются.

Добавлено через 3 минуты
Спасибо за совет, все заработало, только немного другой способ) я к DataSource из второй формы назначил ADOTable первой и при добавлении записи в первую форму они тут же появляются во второй и так же удаляются без проблем)
0
188 / 41 / 12
Регистрация: 22.02.2016
Сообщений: 149
06.03.2016, 20:31 4
denisVBNET,
Они может и противоречат, но работают хорошо)
Что здесь сказать? Смысл работы у них немного разный. В каждом случае создается вспомогательный буфер в который в одном случае TDataSet готовится для редактирования записи и данные копируются в этот буфер и потом восстанавливаются в методе Post(), а в другом случае добавляется новая строка.
даже закрыв и заново запустив вторую форму изменений нет.
А причем здесь форма? форма и грид на ней лишь отображает содержимое источника данных (TDataSet). Если он у Вас не изменился, то и на форме изменений не увидите.
я к DataSource из второй формы назначил ADOTable
Ну если оба TDataSource указывали на разные таблицы - то тогда понятно почему вы не увидели изменений. А в целом вам было бы достаточно одного TDataSource который можно использовать у грида как первой, так и второй формы. В этом случае изменив данные в таблице, данные изменения были бы видны и в гриде второй формы
0
 Аватар для denisVBNET
141 / 8 / 3
Регистрация: 04.09.2015
Сообщений: 113
07.03.2016, 16:00  [ТС] 5
Цитата Сообщение от dstar Посмотреть сообщение
А причем здесь форма?
Я же писал, что в другой среде работал и там по открытию формы данные в нее грузились. вот.
Цитата Сообщение от dstar Посмотреть сообщение
Ну если оба TDataSource указывали на разные таблицы
нет не на разные. одна база данных, одна таблица, просто разные ADOTable и ADOConnect с DataSource.
Все манипуляции с одной и той же БД. Просто не привык еще) еще только учу C++) Спасибо за советы)
0
07.03.2016, 16:00
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.03.2016, 16:00
Помогаю со студенческими работами здесь

Номер записи в DBgrid
Какой параметр IBTable или DBgrid указывает на номер выделенного элемента в таблице? Тоесть в таблице с базой данных, в левой колонке...

DBGrid - удаление записи из базы
Здравствуйте! У меня такой вопросик, как можно удалить запись из базы? на форме есть компоненты ADOTable, ADOQuery, DataSource,...

Одинаковые записи таблиц DBGrid
В общем нужно создать такое условие, чтобы при попытке добавить запись из первой таблицы во вторую, проверялось наличие этой записи во...

Редактирование записи выбранной в DBGrid
Добрый вечер. Отображаю данные в DBGrid таким образом переходом на другую форму void __fastcall Tfrm_oprr::N2Click(TObject *Sender)...

Функция в с++ Builder для удаления записи DBGrid, ADOTAble
Хотел сделать функцию для удаления строк из DBGrid, ADOTAble, код простой, но повторятся бы не хотелось. Все возможные идеи закончили...


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

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

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Опции темы

Новые блоги и статьи
Linux API: Полное руководство
hw_wired 08.02.2025
Linux API – это низкоуровневый программный интерфейс, обеспечивающий взаимодействие пользовательских приложений с ядром операционной системы. Он включает набор системных вызовов, библиотечных функций. . .
Асинхронное программировани­­­­­е и эмуляция async/await в C (СИ)
hw_wired 08.02.2025
Язык программирования C, несмотря на свой возраст, предоставляет неплохие средства для реализации асинхронных операций, позволяя создавать эффективные решения для обработки параллельных задач. В. . .
Как сгенерировать случайное число в указанном диапазоне в JavaScript
bytestream 08.02.2025
В JavaScript генерация случайных чисел основана на детерминированном алгоритме, который создает последовательность псевдослучайных значений. Встроенный метод Math. random() возвращает псевдослучайное. . .
Как получить список всех таблиц в PostgreSQL
bytestream 08.02.2025
PostgreSQL предлагает несколько методов для получения списка таблиц в базе данных. Наиболее распространенный способ - использование системного каталога pg_tables, который содержит информацию обо всех. . .
Java Spring для начинающих
bytestream 08.02.2025
Spring Framework - это универсальное решение для создания корпоративных Java-приложений. Он предоставляет комплексную программную и конфигурационную модель для современных приложений на Java. Spring. . .
Асинхронное программировани­­­­­­е и async/await в Visual Basic
bytestream 08.02.2025
В основе асинхронного программирования в Visual Basic лежит концепция неблокирующего выполнения операций. Когда программа встречает длительную операцию, например, чтение большого файла или запрос к. . .
Async/await и асинхронное программировани­­е в Delphi
bytestream 08.02.2025
Асинхронное программирование является неотъемлемой частью разработки современных приложений, позволяя создавать отзывчивые и эффективные программы. В Delphi реализация асинхронности опирается на. . .
Асинхронное программировани­­­­­е и async/await в C#
bytestream 08.02.2025
Асинхронное программирование - концепция, позволяющая приложениям эффективно выполнять длительные операции без блокировки основного потока выполнения. В контексте современной разработки на C# это. . .
Асинхронное программировани­­­­­е и горутины/каналы в Go
bytestream 08.02.2025
Язык Go изначально разрабатывался с учетом современных многоядерных процессоров и необходимости эффективного параллельного выполнения задач. В отличие от традиционных подходов к асинхронному. . .
Как восстановить stash в Git
hw_wired 08.02.2025
Git stash - это средство для временного сохранения изменений в рабочей директории. В процессе разработки часто возникают ситуации, когда нужно быстро переключиться на другую задачу, но текущие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru