Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Добавление новых записей НЕ по команде. [D7, Access]


quadronik ©   (2005-09-18 05:11:00) 

Заметил такую ерунду.(Дельфи+Access) Создал справочник по моделям авто(модель. двигатель, завод , мощность и пр). Данные отобразил ч/з DBGrid. При нажатии кнопки ДОБАВИТЬ открывается форма для заполнения инфы о новой модели.На форму набросал компоненты из DataControls (TDBEdit, TDBComboBOx и пр.) и кнопки ЗАПИСАТЬ/ОТМЕНА. Так вот если заполнять одно из полей то видно на фоне (на DBGrid) что создалась новая строка и одно из полей сразу приобрело новое значение, хотя кнопка ЗАПИСАТЬ еще не нажата. Получается что эти компоненты СРАЗУ передают значение в базу, а не хранят их до получения команды записать.
Вопрос: как сделать так чтобы данные начали отображаться только после нажатия кнопки ЗАПИСЬ?
зы. Записал процедуру для кнопки
if datamodule1.auto.Modified then datamodule1.auto.Post
Не помогает.


ANB   (2005-09-20 08:31:00) [1]


> когда как... книга книге рознь...
- лучше таки сначала прочитать книгу (хорошую) на понятном языке, а потом с частностями разбираться по справке.


Ильш   (2005-09-20 06:25:00) [2]


> Меня поразила мощь

ооо! круто! куда поразила??? :))))


> Все легче, чем по хелперу разбираться.

когда как... книга книге рознь...

кстати quadronik я из стерлитамака, так что если что кричи :)


quadronik   (2005-09-20 03:28:00) [3]

Буду очень благодарен за дополнительные источники.
Я из гИшимбай, Башкортостан. Дельфи изучаю еще 1,5 месяца. Хотя разобрался быстро, потому что уже год как знаю Паскаль. Меня поразила мощь, которой обладает Дельфи (офигел просто).
В данный момент учусь по книге  М.Фленова (просто чудо что такие замечательные книги можно найти в интернете).
Параллельно (если есть время) вожусь с ассемблером.
Пока это все. Надеюсь будет больше.


ANB   (2005-09-19 22:28:00) [4]


> quadronik ©   (19.09.05 22:23) [7]
- зайди в потрепаться, попроси ссылки на халявые библиотеки. Скачаешь в электронном виде. Все легче, чем по хелперу разбираться.

ЗЫ. А откуда ты ?


quadronik   (2005-09-19 22:23:00) [5]

Счастье действительно пришло!!!
Спасибо Вам ANB за дельный совет.
ЗЫ. А о книгах я лучше промолчу поскольку это целая головная боль для меня, нет у в нашем городке дельного книжного магазина, а на счет интернет-шопинга... Не люблю оставлять подбробную инфу о себе, тем более в интернете.
Еще раз спасибо. Очень помогли.


ANB   (2005-09-19 21:58:00) [6]

Дайтасет - TDataSet - набор данных, предок компонентов для получения данных. У тебя это - datamodule1.auto.
В кнопке "Отмена" напиши
datamodule1.auto.Cancel и будет тебе счастье.

ЗЫ. Надо бы книжек почитать.


quadronik   (2005-09-19 21:48:00) [7]

Простите за мою некомпетентность...Но что такое дайтасет? и можно поподробнее, я с дельфи только 2 месяца...
Спасибо.


ANB   (2005-09-19 21:02:00) [8]

.Cancel дайтасету и все будет ОК.


quadronik   (2005-09-19 21:01:00) [9]

Ну да, новая строка отмечается звездочкой. И в этом весь глюк: если закрыть форму редактирования, и переместить курсор( ч/з фильтр ) то вылетает ошибка, в которой сообщается что "..невозможно провести запись... не указано такое то поле...". Так что нужно сделать чтобы при закрытии формы редактирования, кнопкой ОТМЕНА, происходило уничтожение этой строки?
Спасибо.


Anatoly Podgoretsky   (2005-09-18 13:08:00) [10]

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


YurikGL   (2005-09-18 10:31:00) [11]


> Так вот если заполнять одно из полей то видно на фоне (на
> DBGrid) что создалась новая строка и одно из полей сразу
> приобрело новое значение, хотя кнопка ЗАПИСАТЬ еще не нажата.
>

Нужно посмотреть значек слева от записи на твоем гриде. Если там звездочка или значек курсора, то потдвержденя еще не произошло. Если треугольник, то изменение подтвердилось. А так - подтверждение может произойти, например, при перемещени курсора на другую запись.


Наверх

Титульная страница Поиск, карта сайта Написать письмо