![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Добавление новых записей НЕ по команде. [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) что создалась новая строка и одно из полей сразу
> приобрело новое значение, хотя кнопка ЗАПИСАТЬ еще не нажата.
>
Нужно посмотреть значек слева от записи на твоем гриде. Если там звездочка или значек курсора, то потдвержденя еще не произошло. Если треугольник, то изменение подтвердилось. А так - подтверждение может произойти, например, при перемещени курсора на другую запись.