Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Придется видимо поработать с TTable а как? :), Как добавлять значения по умолчанию? 
:(
    Опции темы
Bes
Дата 8.4.2005, 07:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 806
Регистрация: 8.12.2004

Репутация: 2
Всего: 7



Проблема вообщем-то в том, что с АДОКвери трудно, а может быть и невозможно организовать редактор в самом ДБГриде. Если я не прав - поправьте меня и я отвалю. smile
Стало быть придется работать с АДОТэйблом а я его не люблю и поэтому не умею с ним работать.
Задача такая:
есть две связанных таблицы на МССКУЛСервер2000 связал с помощью диаграм.
первая: автобус
гос номер, маршрут, марка.
вторая: пассажиры
автобус на котором они едут (гос номер)
фио
стоимость проезда
льготы.
Связь идет по гос номеру.

форма должна представлять шапку из первой таблицы и грид из второй, который собственно и надо редактировать.

ТАК ВОТ! ессно, я в грид не вывожу гос номер, а когда добавляешь нового пассажира, выдается ошибка, потому что база не знает к какому гос номеру в первой таблице цеплять этого пассажира.
1) КАК ЗАПИХАТЬ ТУДА ГОС НОМЕР ИЗ ШАПКИ?
2) КАК ВООБЩЕ ЛУЧШЕ ОРГАНИЗОВАТЬ ЭТО ДЕЛО? (может у кого есть опыт)
Заранее благодарен.

З.Ы. Вот ведь. всех убеждал в том что квери рулит, а теперь самому приходится с тэйблом дружить. smile

Это сообщение отредактировал(а) Bes - 8.4.2005, 07:05
PM MAIL   Вверх
DimW
Дата 8.4.2005, 08:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 5
Всего: 44



сначало вопрос "Шапка" это тоже DBGrid? ну то есть в то время когда ты добавляешь пассажира первая таблица активна и курсор стоит на нужной записи??????
PM MAIL ICQ   Вверх
Петрович
Дата 8.4.2005, 08:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1000
Регистрация: 2.12.2003
Где: Москва

Репутация: 6
Всего: 55



Цитата(Bes @ 8.4.2005, 08:04)
ТАК ВОТ! ессно, я в грид не вывожу гос номер, а когда добавляешь нового пассажира, выдается ошибка, потому что база не знает к какому гос номеру в первой таблице цеплять этого пассажира.

Можно попробовать несколько вариантов:
1. добавь в грид коллонку госномера, но, сделай ей Visible False что-бы не маячила.
2. На BeforePost датасета с которым связан грид повесь обработчик который заполнит поле госномера

В принципе, лично я очень не люблю редактирование/добавление записей в гриде - уж больно плохо контролируемо.



--------------------
Все знать невозможно, но хочется
PM ICQ   Вверх
Bes
Дата 8.4.2005, 09:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 806
Регистрация: 8.12.2004

Репутация: 2
Всего: 7



2DimW: Точно, надо будет убрать возможность редактировать грид если шапка пустая.
2Петрович: Да, я уже так и сделал, спасибо, но меня больше интересует вот этот момент.

Цитата
В принципе, лично я очень не люблю редактирование/добавление записей в гриде - уж больно плохо контролируемо.


А какие есть варианты?
PM MAIL   Вверх
bursa
Дата 8.4.2005, 10:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 25.2.2005
Где: Липецк

Репутация: 1
Всего: 1



Может, так?:
Grid1-допустим, слева - список автобусов
Grid2- справа - пассажиры данного автобуса.
В Grid2 - MasterSource:=DataSource1
FieldSource:=госномер.
Но индексы по госномеру надо создавать.
В этом случае при insert госномер добавится автоматически.

Или использовать Query с CashUpdate:=true;
Добавлено @ 10:25
Цитата
В принципе, лично я очень не люблю редактирование/добавление записей в гриде - уж больно плохо контролируемо

А я люблю- удобно пользователю. И вполне контролируемо!

PM MAIL   Вверх
Bes
Дата 8.4.2005, 10:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 806
Регистрация: 8.12.2004

Репутация: 2
Всего: 7



Спасибо, попробую. Если что еще спрошу.
PM MAIL   Вверх
Петрович
Дата 8.4.2005, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1000
Регистрация: 2.12.2003
Где: Москва

Репутация: 6
Всего: 55



Цитата(bursa @ 8.4.2005, 11:22)
А я люблю- удобно пользователю. И вполне контролируемо!

Мои пользователи очень часто бездумно лупят по клавишам при просмотре данных в гриде, что приводит к нежелательным изменениям записей. А потом удивляются:
- А кто это значение такого-то поля у такой-то записи изменил? Я вроде этого не делал.
Я им: А кто цифирь 7 только что у меня на глазах нажал? А потом стрелку вверх?
Они: Ну это я случайно.
smile
Поэтому, там где не требуется скоростной ввод, я предпочитаю при добавлении/редактировании записи вывесить отдельую форму ввода - пусть явно подтвердят добавление/изменение.
Да и транзакции расставлять удобней что бы минимизировать вероятность возникновения конфликтов в многопользовательской среде:
- для гридов, долгая транзакция но только на чтение;
- для вставки/изменения, отдельная короткая транзакция, только на время выполнения INSERT/UPDATE после подтверждения ввода.

Кроме того, при редактированнии грида сложнее обеспечить контроль семантики, и помощь при вводе. В отдельной форме часто делаю возможным автоматическое подзаполнение или изменение допустимых значений одних полей, в зависимости от того что введено в другие поля.

Но, это дело вкуса.



--------------------
Все знать невозможно, но хочется
PM ICQ   Вверх
bursa
Дата 8.4.2005, 12:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 25.2.2005
Где: Липецк

Репутация: 1
Всего: 1



Цитата
пусть явно подтвердят добавление/изменение
, т.е. максимально затруднить работу пользователю, чтобы у него было побольше времени подумать - А правильно ли я ввожу данные? smile
Цитата
Мои пользователи очень часто бездумно лупят по клавишам при просмотре данных в гриде
. Мои тоже. На ответственных участак ставлю "А вы действительно....?"
Цитата
Кроме того, при редактированнии грида сложнее обеспечить контроль семантики, и помощь при вводе. В отдельной форме часто делаю возможным автоматическое подзаполнение или изменение допустимых значений одних полей, в зависимости от того что введено в другие поля.
Полностью согласен. Но никто и не говорит, что нужно вводить данные только в гриде. Есть места, где это уместно, и где нет. Но уметь корректно обращаться с гридом, с контролем в многопользовательской среде, мне кажется, полезно. А выводить окно для редактирования - самый простой выход, когда не хочешь париться с различными проверками в гриде. Думается, что грид для редактирования нужно использовать только в тех случаях, если пользователю необходимо при вводе видеть соседние строки и значения по одному и тому же столбцу.

PM MAIL   Вверх
Петрович
Дата 9.4.2005, 00:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1000
Регистрация: 2.12.2003
Где: Москва

Репутация: 6
Всего: 55



to bursa
В общем, согласен.


--------------------
Все знать невозможно, но хочется
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0617 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.