Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi и базы данных
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 251, средняя оценка - 4.90
МАрковка
0 / 0 / 2
Регистрация: 06.03.2012
Сообщений: 35
#1

Как добавить, изменить, удалить, посмотреть запись в DBGrid? - Delphi БД

06.03.2012, 08:41. Просмотров 38243. Ответов 73
Метки нет (Все метки)

Привет всем!
Помогите, пожааааааалуйста.
Дано:
1. на Form1 расположен DBGrid (2 колонки) и кнопки "добавить", "удалить", "посмотреть"
2. кнопка "добавить" открывает Form3
3. на Form3 расположены Edit1, Edit2, Edit3, Edit4, Edit5, Edit6, Edit7, а также кнопка "ОК"
Требуется:
1. При нажатии на кнопку "ОК" в колонки DBGrid'а попадали Edit1 и Edit4
2. При нажатии на кнопку "посмотреть" на конкретной строке открывалась Form3 без возможности редактирования плюс появлялась кнопка "изменить", при нажатии на которую можно было отредактировать и нажать "ОК"
3. При нажатии на кнопку "удалить" вся строка DBGrid'а удалялась
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.03.2012, 08:41
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как добавить, изменить, удалить, посмотреть запись в DBGrid? (Delphi БД):

Как добавить запись в dbgrid
Здравствуйте срочно нужна помощь делаю курсовую, не могу в dbgrid добавить...

Как удалить запись в dbgrid?
здравствуйте! есть виртуальный датасет MemTableEh, в него заполняются данные из...

Как добавить запись в нужную строку DBGrid?
Нужно чтобы,по указанному в DateTimePicker времени,он добавлял запись в нужную...

Как добавить текущую запись из DbGrid в StringGrid?
Как добавить текущую запись из бд access которая отображается в DBgrid при...

Добавить запись в два DbGrid-а
Добрый день, подскажите как можно добавить запись сразу в 2 DBGrida? есть...

DBGrid столбцы (добавить - удалить)
Доброго времени суток. У меня такой вопрос: возможно ли у DBGrid сделать...

73
Shman
5 / 5 / 6
Регистрация: 30.04.2012
Сообщений: 212
09.10.2013, 18:14 #61
Цитата Сообщение от FIL Посмотреть сообщение
В смысле добавление людей разделить с добавлением контактов. Тогда и проблем таких не будет.
Можешь набросать пример в Delphi, что ты имеешь ввиду? Так на словах не совсем понятно.

Добавлено через 21 минуту
Цитата Сообщение от FIL Посмотреть сообщение
Это тебе так кажется .Меню обработки контактов должно быть полностью отделено от меню людей. Добавил чела, сохранил - можешь работать с его контактами, но не раньше.
Понял, что ты имеешь ввиду, однако это хорошо для моего фрагмента. В реальной проге ЛЮДИ – этот чьи-то ДЕТИ, у них есть свои телефоны и емайлы (LinkKey1 для таблицы КОНТАКТЫ), также есть таблица с РОДИТЕЛЯМИ каждого ребенка (LinkKey1 в таблице РОДИТЕЛИ для связи с ДЕТЬМИ), у РОДИТЕЛЕЙ в свою очередь тоже есть свои мобильники и емайлы, при чем у каждого (мама и папа). Это уже LinkKey3 для табл. КОНТАКТЫ). Для отображения ФИО родителей одна DBGrid, для отображения контактов родителей другая. И как мне это все редактировать? Создавать форму отдльно для детей, для их контактов, для родителей, для контактов родителей? %) А если их будет сотня? %) Или я еще крёстных туда прибавлю и их контакты? . Бабушек, дедушек? Не уж то лучше придумать одну форму для добавления \ редактирования, что я и пытаюсь сделать?

Добавлено через 5 минут
Цитата Сообщение от FIL Посмотреть сообщение
Представь ситуацию, когда ты сохранил контакты и нажал отмену создания чела - что будет?
Надо придумать код для удаления контактов чела при нажатии кнопки Отмена в окне создания чела (отследить его Key1 и LinkKey1 в табл. КОНТАКТЫ).
0
FIL
Модератор
3409 / 2547 / 725
Регистрация: 19.09.2012
Сообщений: 7,908
09.10.2013, 18:31 #62
Цитата Сообщение от Shman Посмотреть сообщение
что ты имеешь ввиду?
Имею ввиду, что нужно всего 2 формы:
первая - для добавления людей
вторая - для добавления контактов уже имеющихся в базе людей

Родственные связи - вообще отдельный разговор

Цитата Сообщение от Shman Посмотреть сообщение
Надо придумать код для удаления контактов чела при нажатии кнопки Отмена в окне создания чела (отследить его Key1 и LinkKey1 в табл. КОНТАКТЫ).
Ну да... Создать себе проблему, чтобы потом мужественно ее решать.
0
Shman
5 / 5 / 6
Регистрация: 30.04.2012
Сообщений: 212
10.10.2013, 10:07 #63
FIL, имеешь в виду надо сделать вот так? См. пример. Также потребовалось изменить внешний вид проги.
Но есть один нюанс, вместе с человеком из БД я бы хотел еще удалить его контакты. НО если человек не имеет контактов, то строки
Delphi
1
2
3
4
begin
  DataModule1.KontaktyTable.Delete;   // Удалить контакты
  DataModule1.LudiTable.Delete;   // Удалить человека из базы
 end;
выдадут ошибку.
Понятно что нужно создать проверку типа
Delphi
1
2
3
4
  If DataModule1.KontaktyTable.() <> '' then
     DataModule1.KontaktyTable.Delete
  else continue;
     DataModule1.LudiTable.Delete;   // Удалить человека из базы
Что написать взамен (…)?
0
Миниатюры
Как добавить, изменить, удалить, посмотреть запись в DBGrid?  
Вложения
Тип файла: zip TestBook3.zip (534.4 Кб, 12 просмотров)
FIL
Модератор
3409 / 2547 / 725
Регистрация: 19.09.2012
Сообщений: 7,908
10.10.2013, 20:47 #64
Delphi
1
2
3
  while DataModule1.KontaktyTable.RecordCount > 0 do
    DataModule1.KontaktyTable.Delete;   // ÓäГ*ëèòü ГЄГ®Г*ГІГ*ГЄГІГ»
  DataModule1.LudiTable.Delete;   // ÓäГ*ëèòü ÷åëîâåêГ* ГЁГ§ ГЎГ*çû
0
Shman
5 / 5 / 6
Регистрация: 30.04.2012
Сообщений: 212
11.10.2013, 07:19 #65
FIL, получилось!
Заодно сделал так, чтобы города отображались как положено, а не цифрами.
0
Вложения
Тип файла: zip TestBook2.zip (531.0 Кб, 12 просмотров)
Shman
5 / 5 / 6
Регистрация: 30.04.2012
Сообщений: 212
11.12.2013, 18:15 #66
Продолжаю мучить TestBook выложенный выше.

Столкнулся с такой проблемой: программа ругается, когда водишь дату не полностью, т.е. если забываешь ввести число или месяц или год, прога ругается чуть ли не матом . Такая же ошибка вылазит когда я пытаюсь вовсе удалить дату рождения у какого-нибудь чела. Вопрос: как научить программу неполным датам? Возможно ли это вообще при использовании ADO\Access? Например, если у чела амнезия, и он не помнить год своего рождения, а только число и месяц? Или не помнит месяц или не помнит число? И как вовсе стереть дату из ячейки? Помогите пжста, очень необходимо решнить эту проблему.
0
Миниатюры
Как добавить, изменить, удалить, посмотреть запись в DBGrid?  
Shman
5 / 5 / 6
Регистрация: 30.04.2012
Сообщений: 212
11.12.2013, 18:27 #67
Еще меня интересует вот что. В Access можно выбрать формат поля Дата/Время. См. скриншот. Так и хочется выбрать краткий формат даты! Но надо ли это делать или лучше оставить это поле пустым, а все нужное связанное с датами и временем программировать из Delphi?
0
Миниатюры
Как добавить, изменить, удалить, посмотреть запись в DBGrid?  
Shman
5 / 5 / 6
Регистрация: 30.04.2012
Сообщений: 212
14.12.2013, 13:56 #68
Ребята как еще решить вот такую задачу: например, нужно в справочнике поменять местами города Томск и Новосибирск кнопками «Вверх» и «Вниз» (по-моему даже Key1 при этом должен поменяться местами). Так можно сделать в данной таблице в принципе? Что следует написать при этом?
0
Миниатюры
Как добавить, изменить, удалить, посмотреть запись в DBGrid?  
Shman
5 / 5 / 6
Регистрация: 30.04.2012
Сообщений: 212
19.12.2013, 15:14 #69
И снова я обращаюсь по поводу даты. Я изменил маску на !99/99/9999;1;_ и в DisplayFormat вписал dd.mm.yyyy в надежде что неполная дата будет вставляться нормально, но этого не произошло ? Все таки как добиться того, чтобы можно было вписывать неполную дату рождения человеку (например, 09.10.____)? И возможно ли это в случае с ADO\Access?
0
Вложения
Тип файла: zip TestBook2 (With IMG).zip (480.8 Кб, 8 просмотров)
Waddonator
962 / 638 / 96
Регистрация: 01.11.2012
Сообщений: 1,447
19.12.2013, 16:14 #70
Цитата Сообщение от Shman Посмотреть сообщение
Все таки как добиться того, чтобы можно было вписывать неполную дату рождения человеку
Чтобы вписывать неполную дату, данные должны храниться как текст. В формате ДатаВремя дата хранится как число. Например, 09.10 2000 хранится как 36808. Как Вы хотите из этого числа убрать упоминание о 2000 годе?
1
Shman
5 / 5 / 6
Регистрация: 30.04.2012
Сообщений: 212
19.12.2013, 18:31 #71
Waddonator, то есть сделать поле типа "Текстовое"? А если мне потом надо будет устроить поиск по дате, то люди по дат рождения из такого поля будут нормально находиться?
0
Waddonator
962 / 638 / 96
Регистрация: 01.11.2012
Сообщений: 1,447
19.12.2013, 18:46 #72
Цитата Сообщение от Shman Посмотреть сообщение
если мне потом надо будет устроить поиск по дате, то люди по дат рождения из такого поля будут нормально находиться?
это зависит от того, как Вы в дальнейшем сможете работать с этими данными. Плюс эти данные будут занимать больше места при хранении и работа с ними будет существенно замедляться, т.к. потребуются постоянные конвертирования.

Добавлено через 8 минут
Shman, могу посоветовать ввести дополнительное целочисленное поле формата MMDD. Если пользователь вводит полную дату, то заполняются поля и Дата/Время и это числовое поле. Если тольго день и месяц - то заполняется только новое поле. Кстати, это поле вам может понадобится например для отображения дней рождения, которые не зависят от года, или вывести все дни рождения за какой-то период и т.д.
0
Shman
5 / 5 / 6
Регистрация: 30.04.2012
Сообщений: 212
25.12.2013, 11:59 #73
Решил я сделать простенький справочник религий и конфессий. Суть такая. Есть две таблицы: 1. религии, 2. конфессии. Конфесcии связаны с религиями. Вводим например в первую таблицу Христианство, а во вторую ее конфессии (православие, католицизм и т.д.). Вроде все работает, но потом я подумал, а может быть есть возможность данные обеих таблиц держать в одной? Сделал как себе представал. Вроде бы все норм, но при перезапуске получаются пробелы в таблице Религия. Оно и понятно, счетчик то на всех. Вопрос: можно ли вообще объединить эти две таблицы в одну, а показывать как две?
Ниже выложил архив с исходниками, в папке 1 справочник с двумя таблицами, в папке 2 - с одной. Также выложил скрины, где мне не нравится.
1
Миниатюры
Как добавить, изменить, удалить, посмотреть запись в DBGrid?   Как добавить, изменить, удалить, посмотреть запись в DBGrid?  
Вложения
Тип файла: zip ReligTestBook.zip (976.1 Кб, 10 просмотров)
Waddonator
962 / 638 / 96
Регистрация: 01.11.2012
Сообщений: 1,447
25.12.2013, 12:13 #74
Shman, объединять две таблицы, которые относятся друг к другу как "Главная"-"Подчиненная" в одну - это бред.
http://ru.wikipedia.org/wiki/%CD%EE%...F4%EE%F0%EC%E0

Добавлено через 5 минут
Вот еще статейка:
http://www.wwwmaster.ru/article.php?nart=21

Можете сами поискать информацию о нормализации данных в БД.
0
25.12.2013, 12:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.12.2013, 12:13
Привет! Вот еще темы с решениями:

DBGrid столбцы (добавить - удалить)
Здравствуйте. Помогите пожалуйста, весь интернет перерыла. На форме...

Добавить запись в выделенную ячейку DBGRID
Всем привет, разрабатываю программу электронная регистратура. Такой вопрос, как...

DBGrid, добавить запись в колонку с выборкой
Есть грид, пользователей. (uid, login) Пользователи заполняют таблицу...

Удалить запись из DBGrid
В DBGrid выводится информация из 2 таблиц. Выделяю нужную строку, жму кнопку...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru