![]() |
|
|
![]()
|
|
| Bes |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 806 Регистрация: 8.12.2004 Репутация: 2 Всего: 7 |
Проблема вообщем-то в том, что с АДОКвери трудно, а может быть и невозможно организовать редактор в самом ДБГриде. Если я не прав - поправьте меня и я отвалю.
Стало быть придется работать с АДОТэйблом а я его не люблю и поэтому не умею с ним работать. Задача такая: есть две связанных таблицы на МССКУЛСервер2000 связал с помощью диаграм. первая: автобус гос номер, маршрут, марка. вторая: пассажиры автобус на котором они едут (гос номер) фио стоимость проезда льготы. Связь идет по гос номеру. форма должна представлять шапку из первой таблицы и грид из второй, который собственно и надо редактировать. ТАК ВОТ! ессно, я в грид не вывожу гос номер, а когда добавляешь нового пассажира, выдается ошибка, потому что база не знает к какому гос номеру в первой таблице цеплять этого пассажира. 1) КАК ЗАПИХАТЬ ТУДА ГОС НОМЕР ИЗ ШАПКИ? 2) КАК ВООБЩЕ ЛУЧШЕ ОРГАНИЗОВАТЬ ЭТО ДЕЛО? (может у кого есть опыт) Заранее благодарен. З.Ы. Вот ведь. всех убеждал в том что квери рулит, а теперь самому приходится с тэйблом дружить. Это сообщение отредактировал(а) Bes - 8.4.2005, 07:05 |
|||
|
||||
| DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 5 Всего: 44 |
сначало вопрос "Шапка" это тоже DBGrid? ну то есть в то время когда ты добавляешь пассажира первая таблица активна и курсор стоит на нужной записи??????
|
|||
|
||||
| Петрович |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: 6 Всего: 55 |
Можно попробовать несколько вариантов: 1. добавь в грид коллонку госномера, но, сделай ей Visible False что-бы не маячила. 2. На BeforePost датасета с которым связан грид повесь обработчик который заполнит поле госномера В принципе, лично я очень не люблю редактирование/добавление записей в гриде - уж больно плохо контролируемо. -------------------- Все знать невозможно, но хочется |
|||
|
||||
| Bes |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 806 Регистрация: 8.12.2004 Репутация: 2 Всего: 7 |
2DimW: Точно, надо будет убрать возможность редактировать грид если шапка пустая.
2Петрович: Да, я уже так и сделал, спасибо, но меня больше интересует вот этот момент.
А какие есть варианты? |
|||
|
||||
| bursa |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 98 Регистрация: 25.2.2005 Где: Липецк Репутация: 1 Всего: 1 |
Может, так?:
Grid1-допустим, слева - список автобусов Grid2- справа - пассажиры данного автобуса. В Grid2 - MasterSource:=DataSource1 FieldSource:=госномер. Но индексы по госномеру надо создавать. В этом случае при insert госномер добавится автоматически. Или использовать Query с CashUpdate:=true; Добавлено @ 10:25
А я люблю- удобно пользователю. И вполне контролируемо! |
|||
|
||||
| Bes |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 806 Регистрация: 8.12.2004 Репутация: 2 Всего: 7 |
Спасибо, попробую. Если что еще спрошу.
|
|||
|
||||
| Петрович |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: 6 Всего: 55 |
Мои пользователи очень часто бездумно лупят по клавишам при просмотре данных в гриде, что приводит к нежелательным изменениям записей. А потом удивляются: - А кто это значение такого-то поля у такой-то записи изменил? Я вроде этого не делал. Я им: А кто цифирь 7 только что у меня на глазах нажал? А потом стрелку вверх? Они: Ну это я случайно. Поэтому, там где не требуется скоростной ввод, я предпочитаю при добавлении/редактировании записи вывесить отдельую форму ввода - пусть явно подтвердят добавление/изменение. Да и транзакции расставлять удобней что бы минимизировать вероятность возникновения конфликтов в многопользовательской среде: - для гридов, долгая транзакция но только на чтение; - для вставки/изменения, отдельная короткая транзакция, только на время выполнения INSERT/UPDATE после подтверждения ввода. Кроме того, при редактированнии грида сложнее обеспечить контроль семантики, и помощь при вводе. В отдельной форме часто делаю возможным автоматическое подзаполнение или изменение допустимых значений одних полей, в зависимости от того что введено в другие поля. Но, это дело вкуса. -------------------- Все знать невозможно, но хочется |
|||
|
||||
| bursa |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 98 Регистрация: 25.2.2005 Где: Липецк Репутация: 1 Всего: 1 |
|
||||||
|
|||||||
| Петрович |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: 6 Всего: 55 |
to bursa
В общем, согласен. -------------------- Все знать невозможно, но хочется |
|||
|
||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |