Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 24.03.2008, 22:42
SSA SSA вне форума
Прохожий
 
Регистрация: 04.02.2008
Сообщения: 13
Репутация: 10
По умолчанию Всем Доброго времени суток!

Всем Доброго времени суток!
Хотел бы узнать, возможно ли сделать так? Есть в БД (access) 7 таблиц. Все они связаны соотношением один ко многим. На первой странице формы элемент DBGRID он отображает данные из первой таблицы, есть еще одна форма, которая добавляет данные в нее (вроде все работает). Проблемы с третьей формой, которая добавляет данные в остальные 6 таблиц. Как сделать так, чтобы, выбрав строку в элементе DBgrid на первой форме, ввести данные в 6 таблицах одновременно без введения ключевого поля?


И вот еще возник вопрос- можно, чтобы, добавив заказ в головной форме, автоматически создавалась папка в определенном каталоге?
Ответить с цитированием
  #2  
Старый 25.03.2008, 22:07
MegaPiha MegaPiha вне форума
Активный
 
Регистрация: 24.03.2008
Сообщения: 227
Версия Delphi: Delphi 7
Репутация: 30
По умолчанию

Не совсем понятно, что именно нужно.
На первой форме отображаются данные из первой таблицы - и все? просто компонет Table. Она ни с чем не связана? Или это Query?
ЧТо значит форма добавляет данные в 6 таблиц? Это таблицы-справочники как я понимаю?
Если можно поподробнее задачу изложи. Используешь наверное ADO?
Ответить с цитированием
  #3  
Старый 25.03.2008, 23:45
SSA SSA вне форума
Прохожий
 
Регистрация: 04.02.2008
Сообщения: 13
Репутация: 10
По умолчанию

Цитата:
Сообщение от MegaPiha
Не совсем понятно, что именно нужно.
На первой форме отображаются данные из первой таблицы - и все? просто компонет Table. Она ни с чем не связана? Или это Query?
ЧТо значит форма добавляет данные в 6 таблиц? Это таблицы-справочники как я понимаю?
Если можно поподробнее задачу изложи. Используешь наверное ADO?

Да на первой форме (основной) отображаются данные из головной таблицы элементом Dbgrid и имеются 6 подчиненных таблиц все они связаны с головной таблицей (между ними связей нету). Надо выбрав строку в Dbgrid произвести записать в подчиненные таблицы. При этом хотелось бы не вводить ключевое поле а что бы ссылалось на выбраную строку в элементе DBgrid. Использовал ADO.

Последний раз редактировалось SSA, 26.03.2008 в 00:06.
Ответить с цитированием
  #4  
Старый 25.03.2008, 23:59
SSA SSA вне форума
Прохожий
 
Регистрация: 04.02.2008
Сообщения: 13
Репутация: 10
По умолчанию

Вот выкину программу может чем поможете!
http://kaminic.narod.ru/kursovrab.zip

Последний раз редактировалось SSA, 26.03.2008 в 00:04.
Ответить с цитированием
  #5  
Старый 26.03.2008, 20:37
MegaPiha MegaPiha вне форума
Активный
 
Регистрация: 24.03.2008
Сообщения: 227
Версия Delphi: Delphi 7
Репутация: 30
По умолчанию

Цитата:
Сообщение от SSA
Вот выкину программу может чем поможете!
http://kaminic.narod.ru/kursovrab.zip
Поможем, когда до конца поймем что надо.
Скачал посмотрел. Теперь попробую описать что тебе надо как понял я. Поправь если не что не так.
У тебя одна главная таблица.
Связана эта таблица с шесью таблицами - один ко многим. Т.е. каждому значению из главной таблицы соответствует по одной и более записей в дополнительных таблицах. Однако на форме это пока не предусмотрено. Пока я вижу лишь связь один к одному. Т.е. каждой записи главной таблицы соответствует по одной записи в каждой из 6 таблиц. Если это так то может имеет смысл объединить эти таблицы в одну?
Идем далее.
Я понял что ты хочешь чтобы во всех дополнительных таблицах автоматически добавлялась запись, соответствующая вновь добавленной записи в главной таблице. Если это так то для этого надо в событии компонента твоей базы ADOTable1 AfterInsert прописывать процедуру добавления записи.
Теперь пожелания. Вообще в главной таблице поле "Номер заказа" надо делать счетчиком, а в подчиненных таблицах такое же поле переделать в формат "числовое".
Ответить с цитированием
  #6  
Старый 26.03.2008, 23:34
SSA SSA вне форума
Прохожий
 
Регистрация: 04.02.2008
Сообщения: 13
Репутация: 10
По умолчанию

Цитата:
Сообщение от MegaPiha
Я понял что ты хочешь чтобы во всех дополнительных таблицах автоматически добавлялась запись, соответствующая вновь добавленной записи в главной таблице. Если это так то для этого надо в событии компонента твоей базы ADOTable1 AfterInsert прописывать процедуру добавления записи.
Теперь пожелания. Вообще в главной таблице поле "Номер заказа" надо делать счетчиком, а в подчиненных таблицах такое же поле переделать в формат "числовое".

В одной таблице не выход как сказали " Это очень просто"

Все что я хотел ))))

Последний раз редактировалось SSA, 26.03.2008 в 23:38.
Ответить с цитированием
  #7  
Старый 27.03.2008, 07:46
MegaPiha MegaPiha вне форума
Активный
 
Регистрация: 24.03.2008
Сообщения: 227
Версия Delphi: Delphi 7
Репутация: 30
По умолчанию

Цитата:
Сообщение от SSA
В одной таблице не выход как сказали " Это очень просто"

Чем проще тем лучше.
Ответить с цитированием
  #8  
Старый 27.03.2008, 20:24
SSA SSA вне форума
Прохожий
 
Регистрация: 04.02.2008
Сообщения: 13
Репутация: 10
По умолчанию

Цитата:
Сообщение от MegaPiha
Чем проще тем лучше.
Хотелось бы но есть одна проблема много данных в таблицах будет, перегрузим.
Ответить с цитированием
  #9  
Старый 27.03.2008, 20:33
MegaPiha MegaPiha вне форума
Активный
 
Регистрация: 24.03.2008
Сообщения: 227
Версия Delphi: Delphi 7
Репутация: 30
По умолчанию

Цитата:
Сообщение от SSA
Хотелось бы но есть одна проблема много данных в таблицах будет, перегрузим.
Хозяин барин. Но мне кажется что так было бы лучше.
Ответить с цитированием
  #10  
Старый 27.03.2008, 23:15
SSA SSA вне форума
Прохожий
 
Регистрация: 04.02.2008
Сообщения: 13
Репутация: 10
По умолчанию

Вот как если создать на форме поле и перенести туда значение выбраной ячейки из DBgrid (FieldByName) и эта ячейка будет выступать как ключевым полем. так реально?

Последний раз редактировалось SSA, 27.03.2008 в 23:53.
Ответить с цитированием
  #11  
Старый 28.03.2008, 19:41
MegaPiha MegaPiha вне форума
Активный
 
Регистрация: 24.03.2008
Сообщения: 227
Версия Delphi: Delphi 7
Репутация: 30
По умолчанию

Цитата:
Сообщение от SSA
Вот как если создать на форме поле и перенести туда значение выбраной ячейки из DBgrid (FieldByName) и эта ячейка будет выступать как ключевым полем. так реально?
Опять не понимаю тебя. ЧТо значит создать на форме поле? В DBGrid создать поле и перенести туда занчение одной ячейки?
Ячейка не может выступать ключевым полем. Ключевым полем может выступать только поле. Если тебе надо программно создать новое поле и сделать его ключевым попробуй прочитать вот это http://delphiworld.narod.ru/base/cre...cess_tbls.html Надеюсь тебе удастся вытащить оттуда рациональное зерно.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 00:05.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter