![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ввод данных в две таблицы из одной формы [D7, IB6.x, FireBird 1.5]
grav © (2008-04-17 17:49:00)Требуется реализовать ввод данных в БД. Данные следующие. Имеется здание, в нем располагаются объекты (склад, столовая и т.д.). Нужно чтобы пользователь вводил: Здание №1, его параметры (год постройки, общая площадь, полная стоимость и т.д.). Потом на этой же форме вводил все объекты располагающиеся в этом здании: 1. Столовая, площадь, проектная мощность и т.д. 2. Спортзал .... 3...
Потом Здание №2 и его объекты. И чтобы это все на одной форме располагалось.
Своих варианта два. Первый - использовать два DBGrid, вверху для зданий, внизу для объектов. Второй - использовать TDBCtrlGrid, с которым не могу разобраться :)
Подскажите, как такое правильно реализуется?
grav (2008-05-14 14:01:00) [1]Я IBTable первый раз использую, пользовался IBQuery и IBSQL. Сейчас потребовалось мастер-детайл и возможность редактирования. Вот и связался с IBTable.
IBDataSet вообще не использовал не разу. Надо посмотреть.
Так что, нельзя упорядочить по возрастанию?
Sergey13 (2008-05-14 13:44:00) [2]> [92] grav (14.05.08 12:50)
> Возможно ли в IBTable
Пора уже выкинуть этот IBTable и пользоваться нормальным IBDataSet-ом.
grav (2008-05-14 12:50:00) [3]Возможно ли в IBTable упорядочение записей по возрастанию или убыванию?
Есть поле ID, по нему создан индекс. Что то в гриде здания отображаются, не в том порядке как в индексе
grav (2008-05-14 10:32:00) [4]
> Sergey13 © (14.05.08 08:44) [90]
Разместил рядом с гридом групбокс и леплю DBEdit'ы и DBMemo. Так вот при изменении значения в DBMemo свойство UpdatesPending не срабатывает, почему?
Sergey13 (2008-05-14 08:44:00) [5]> [88] grav (13.05.08 17:26)
> Не нравится мне, что для одной строки приходится целый грид отводить
Ну и не отводи. ДБГрид не единственный компонент для отображения данных из БД. Тем более если отображается ВСЕГДАТОЛЬКО ОДНА ЗАПИСЬ.
Slym (2008-05-14 04:29:00) [6]MemoryDataset?
На клиента вбиваешь все в мемори датасеты, а потом на кнопачку "Сохранить" все датасеты в одной транзакции сохраняеш в "реальную" базу...
MemoryDataset можно заменить на какуюнибудь локальную СУБД, с возможностью при "крахе" восстановить последнее несохнаненное состояние
grav (2008-05-13 17:26:00) [7]Не нравится мне, что для одной строки приходится целый грид отводить
Sergey13 (2008-05-13 16:21:00) [8]> [86] grav (13.05.08 16:12)
> Как то не красиво у меня получилось.
А по мне так красотища!
Лепота! (с) И.Грозный
Еще бы красочек добавить поядовитее.
8-))))))))
grav (2008-05-13 16:12:00) [9]Как то не красиво у меня получилось.
Есть грид с кодом и наименованием организации. Много организаций - -много строк. Справа еще грид с финансовыми данными по каждой организации в отдельности. И в этом гриде только одна строка. Т.е. выбираешь в левом гриде предприятие, справа отображается одна строка с данными.
Снизу слева еще один грид, в нем перечислены здания организации, справа грид с одной строкой с данными по каждому зданию.
Еще ниже еще один грид со списком объектов в данном здании и справа данные по этому объекту из одной строки. :(((
Sergey13 (2008-05-13 16:01:00) [10]> [84] grav (13.05.08 15:58)
ИБ и его клоны не поддерживают вложенных таблиц, насколько я знаю. Из тех кто поддерживает я знаю только Оракл. Там (в реальной БД) поле может содержать таблицу. Поэтому в простом датасете смотрщим на реальную БД интербейса сделать этого вроде как не получится. А вот в клиентском датасете - можно.
grav (2008-05-13 15:58:00) [11]
> Sergey13 © (13.05.08 15:38) [83]
А поподробнее? Вот создал я в IBTable новое поле. Выбрал его тип DataSet. А где ему назначить его IBTable? Оно ведь не вычисляемое и не лукап.
Sergey13 (2008-05-13 15:38:00) [12]> [82] grav (13.05.08 15:35)
> А как сделать, чтобы ссылка была не на значение, а на целый
> датасет?
Создать поле с типом датасет.
grav (2008-05-13 15:35:00) [13]
> "Значение этого поля" - ссылка на значение в другой таблице.
ясно. Спасибо.
А как сделать, чтобы ссылка была не на значение, а на целый датасет?
У самого случайным образом так получилось при использовании связки ClientDataSet+DataSource+DBGrid. Щелкаешь на ячейке мышкой и открывается отдельный грид с данными.
Sergey13 (2008-05-13 15:22:00) [14]> [80] grav (13.05.08 15:16)
> Хочется менять значение этого поля, т.е. значение в другой таблице.
"Значение этого поля" - ссылка на значение в другой таблице.
grav (2008-05-13 15:16:00) [15]
> Я не хочу быть святее Папы Римского (модератора), но вообще-
> то это запрещено правилами форума: одна ветка - один вопрос.
>
Плодить много мелких веток тоже не есть хорошо.
Хочется менять значение этого поля, т.е. значение в другой таблице. Но если нельзя (а у меня не получилось), то нельзя. Добавлю еще один грид.
Sergey13 (2008-05-13 15:03:00) [16]> [78] grav (13.05.08 14:49)
> пусть будет
Я не хочу быть святее Папы Римского (модератора), но вообще-то это запрещено правилами форума: одна ветка - один вопрос.
А что значит "LookUp поля редактировать нельяз"? В справочнике, на который ссылается поле, можно что угодно редактировать. В самой таблице (в которой это поле) можно менять ссылку на справочник и/или удалять ее. Что хочется то?
grav (2008-05-13 14:49:00) [17]
> Sergey13 © (13.05.08 14:36) [77]
Ну у мну своего нет блога, пусть будет :)
Там можно или нельзщя редактировать LookUp поля?
Sergey13 (2008-05-13 14:36:00) [18]Ветка потихоньку превращается в блог. 8-)
grav (2008-05-13 14:21:00) [19]Блин. А LookUp поля редактировать нельяз что ли?
Anatoly Podgoretsky (2008-05-13 13:21:00) [20]> grav (13.05.2008 12:32:09) [69]
Если не хочет сохранять, то Rollback
Всего то две операции Да и Нет