Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi и базы данных
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.77
said
0 / 0 / 1
Регистрация: 17.12.2009
Сообщений: 38
#1

KeyDown - и запись добавляется. Как избежать? - Delphi БД

06.02.2010, 00:21. Просмотров 1652. Ответов 22
Метки нет (Все метки)

Добрый день!

При перемещении курсора ниже последней записи в таблице базы данных происходит добавление новой записи. Если внести в ячейку какое-нибудь значение, то достаточно перейти на любую другую строку таблицы, чтобы произошло сохранение записи и добавление ее в таблицу базы данных.
Как этого избежать?

Спасибо!
http://www.cyberforum.ru/delphi-database/thread1334470.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.02.2010, 00:21
Я подобрал для вас темы с готовыми решениями и ответами на вопрос KeyDown - и запись добавляется. Как избежать? (Delphi БД):

Не добавляется запись
Вот в чем проблема, есть 3 формы. На одной есть 2 dbgrid`а(один ко многим). На...

Не добавляется запись
Очень срочно нужна помощь! Какая-то ерунда, элементарно надо добавить запись,...

Не добавляется выбранная запись в Combobox
Items загружается из .txt, ComboBox используется для фильтра в таблице. Так...

Не добавляется запись, из-за поле счётчика
Почему выдаёт ошибку помогите? 0 полем, является поле Code, в access тип данных...

Не добавляется новая запись в dbgrid через sql запросы
procedure TF_KMR.ToolButton1Click(Sender: TObject); Var kmr:string; begin ...

22
Андрей Борисови
708 / 396 / 33
Регистрация: 04.10.2009
Сообщений: 1,687
06.02.2010, 00:45 #2
Возможно отследить KeyPress и Row таблицы и запретить ввод...
1
said
0 / 0 / 1
Регистрация: 17.12.2009
Сообщений: 38
06.02.2010, 00:49  [ТС] #3
каким образом? у меня таблица заполняется из другой формы
0
Андрей Борисови
708 / 396 / 33
Регистрация: 04.10.2009
Сообщений: 1,687
06.02.2010, 13:42 #4
Цитата Сообщение от said Посмотреть сообщение
При перемещении курсора ниже последней записи в таблице базы данных происходит добавление новой записи.
Я так понял, что вы вручную двигаетесь по таблице...

А из другой формы - еще проще.
Вы сначала заполняете форму данными и при нажатии кнопки "ОК" заполняете таблицу.
1
DenProx
Техник
311 / 169 / 25
Регистрация: 09.10.2009
Сообщений: 3,061
06.02.2010, 13:49 #5
said, дак вы поставте значение ReadOnly = True, вродибы должно помоч...

Добавлено через 22 секунды
для таблицы...
1
said
0 / 0 / 1
Регистрация: 17.12.2009
Сообщений: 38
06.02.2010, 14:53  [ТС] #6
нет. так нельзя. у меня в программе, при нажатии на столбец таблицы, появляется диаграмма. нужен другой способ

Добавлено через 2 минуты
Цитата Сообщение от Андрей Борисови Посмотреть сообщение
Я так понял, что вы вручную двигаетесь по таблице...

А из другой формы - еще проще.
Вы сначала заполняете форму данными и при нажатии кнопки "ОК" заполняете таблицу.
Так и делаю. но при перемещении в теукщей таблице добавляется строка после последней записи
0
DenProx
Техник
311 / 169 / 25
Регистрация: 09.10.2009
Сообщений: 3,061
06.02.2010, 15:31 #7
said, тогда попробуйте использовать Грид из библиотеки EhLib, там вроди бы не добавляется запись... точно не помню)
1
said
0 / 0 / 1
Регистрация: 17.12.2009
Сообщений: 38
06.02.2010, 15:34  [ТС] #8
Именно этот компонент и использую - добавляется.
Пока ничего придумать не могу.....
0
Андрей Борисови
708 / 396 / 33
Регистрация: 04.10.2009
Сообщений: 1,687
06.02.2010, 16:43 #9
Это основное свойство грида..
0
said
0 / 0 / 1
Регистрация: 17.12.2009
Сообщений: 38
06.02.2010, 17:08  [ТС] #10
И как быть?
0
Ex_Soft
107 / 107 / 15
Регистрация: 28.01.2009
Сообщений: 481
06.02.2010, 20:00 #11
Цитата Сообщение от said Посмотреть сообщение
при перемещении в теукщей таблице добавляется строка после последней записи
Цитата Сообщение от help
TCustomDBGrid::ReadOnly
...
When ReadOnly is true, users cannot use the Insert key to insert a new row in the grid or use the Down Arrow key to add a row to the end of the grid.
???
1
said
0 / 0 / 1
Регистрация: 17.12.2009
Сообщений: 38
07.02.2010, 17:03  [ТС] #12
Ну что, форумчане?? Никак??

Добавлено через 3 минуты
Цитата Сообщение от Ex_Soft Посмотреть сообщение
???
Спасибо. ща проверю

Добавлено через 3 минуты
Цитата Сообщение от Ex_Soft Посмотреть сообщение
???
Так нельзя. При щелчке на столбще таблицы появляется диаграмма
0
Ex_Soft
107 / 107 / 15
Регистрация: 28.01.2009
Сообщений: 481
07.02.2010, 19:12 #13
Цитата Сообщение от said Посмотреть сообщение
При щелчке на столбще таблицы появляется диаграмма
ниасилил
0
said
0 / 0 / 1
Регистрация: 17.12.2009
Сообщений: 38
07.02.2010, 19:15  [ТС] #14
Цитата Сообщение от Ex_Soft Посмотреть сообщение
Добрый день!

При перемещении курсора ниже последней записи в таблице базы данных происходит добавление новой записи. Если внести в ячейку какое-нибудь значение, то достаточно перейти на любую другую строку таблицы, чтобы произошло сохранение записи и добавление ее в таблицу базы данных.
Как этого избежать?

Спасибо!
0
Lord_Voodoo
Супер-модератор
8607 / 2228 / 133
Регистрация: 07.03.2007
Сообщений: 10,802
Завершенные тесты: 1
08.02.2010, 01:54 #15
said, закрой грид от редактирования
1
said
0 / 0 / 1
Регистрация: 17.12.2009
Сообщений: 38
08.02.2010, 02:04  [ТС] #16
Спасибо
0
taras atavin
4204 / 1763 / 212
Регистрация: 24.11.2009
Сообщений: 27,565
08.02.2010, 04:58 #17
Можно отследить BeforInsert. Но не уверен, что поможет.
1
DenProx
Техник
311 / 169 / 25
Регистрация: 09.10.2009
Сообщений: 3,061
08.02.2010, 07:15 #18
said, возникла еще такая идея, отслеживать положение выделения, если запись последняя, то закрыть таблицу для редактирования, иначе открыть... в принцыпе, как и советовал taras atavin...
1
Андрей Борисови
708 / 396 / 33
Регистрация: 04.10.2009
Сообщений: 1,687
08.02.2010, 08:06 #19
Я, если чесно, вообще не понимаю, почему у вас добавляется строка, т.к. вы все добавления делаете из дополнительной формы.
1. Если это так и грид вам нужен только для просмотра данных, тогда грид.readonly
2. Если это не так, то сделайте условие на движение стрелки вниз в KeyPress для грида, или сделайте добавление данных через дополнительную форму.
1
Ex_Soft
107 / 107 / 15
Регистрация: 28.01.2009
Сообщений: 481
08.02.2010, 11:42 #20
Цитата Сообщение от Ex_Soft Посмотреть сообщение
Цитата Сообщение от said Посмотреть сообщение
Так нельзя. При щелчке на столбще таблицы появляется диаграмма
ниасилил
Вы не поняли: какая диаграма? чего она появляется?
Цитата Сообщение от Андрей Борисови Посмотреть сообщение
грид.readonly
Дык, советовали ж уже... Грит (см. выше) - не удовлетворяет...
0
08.02.2010, 11:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.02.2010, 11:42
Привет! Вот еще темы с решениями:

Как избежать совпадений в базе данных?
Здравствуйте! Пытаюсь написать код для избежания совпадений полей в базе...

как избежать одинаковых манипуляций со всеми полями
Делаю "словарик" для проги .. в котором в уникальных экземплярах предоставлены...

Как избежать синхронной работы двух ICQ-ботов на разных ПК
Есть ICQ бот с одним юином. И этот бот запущен на 2-х копьютерах. Отсылая...

KeyDown
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru