Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.05.2009, 00:07   #1
Vavik
Пользователь
 
Аватар для Vavik
 
Регистрация: 27.04.2009
Сообщений: 11
По умолчанию Изменение БД через DBGrid

Всем привет.
Как мне добавить/редактировать/удалить запись через DBGrid ? Тоесть, я выделил строчку, нажал на кнопочку и строка удалилась в бд и в гриде. Выделил строку, редактировал значения, нажал на кнопочку и изменения сохранились в БД. Как это всё сделать ?
(ADO+Postgresql)
Vavik вне форума Ответить с цитированием
Старый 05.05.2009, 04:50   #2
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Самый простой вариант это использовать компонент dbnavigator со вкладки datacontrols. У него Есть свойство DataSource, которое должно быть равным тому Чему равно это же свойство у грида. Либо свои кнопочки использовать. Это более удобно.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 05.05.2009, 06:53   #3
Vavik
Пользователь
 
Аватар для Vavik
 
Регистрация: 27.04.2009
Сообщений: 11
По умолчанию

Цитата:
Сообщение от artemavd Посмотреть сообщение
Самый простой вариант это использовать компонент dbnavigator со вкладки datacontrols. У него Есть свойство DataSource, которое должно быть равным тому Чему равно это же свойство у грида. Либо свои кнопочки использовать. Это более удобно.
Ну вообщем да, я хочу создать кнопы, которые повторяли бы работу навигатора. (добавить/удалить/редактировать/отмена/сохранить)

Последний раз редактировалось Vavik; 05.05.2009 в 07:53.
Vavik вне форума Ответить с цитированием
Старый 05.05.2009, 08:26   #4
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Тогда смотри, как можно сделать. Берешь со страницы Additional компонент-кнопку SpeedButton и кидаешь на форму. Кидаешь на форму также компоненты: Table1(со вкладки BDE), DataSource1(со вкладки DataAccess), DBGrid1 (со вкладки DataControls). НАстраиваешь их так:
- у компонента Table1 в свойстве DatabaseName указываешь псевдоним БД, в свойстве TableName указываешь имя нужной таблицы;
- у компонента DataSource1 в свойстве DataSet1 Указываешь Table1;
- у компонента DBGrid1 в свойстве DataSource указываешь DataSource1.
Далее, открываешь два раза кнопку SpeedButton и пишешь там такой код:
Код:
Table1.Insert; //добавить запись
Вот. Для остальных действий процедуры будут такие:
Код:
Table1.Insert; //добавить запись
Table1.Prior; //предыдущая запись
Table1.Next; //следующая запись
Table1.Last; //последняя в таблице запись
Table1.First; //первая в таблице запись
Table1.Delete; //удалить запись
Table1.Edit; //редактировать запись
Table1.Post; //вставить запись
Table1.Refresh; //обновить запись
Естественно, что эти процедуры пишутся в разных кнопках. Вот
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 05.05.2009, 12:05   #5
Vavik
Пользователь
 
Аватар для Vavik
 
Регистрация: 27.04.2009
Сообщений: 11
По умолчанию

Цитата:
Сообщение от artemavd Посмотреть сообщение
Тогда смотри, как можно сделать. Берешь со страницы Additional компонент-кнопку SpeedButton и кидаешь на форму. Кидаешь на форму также компоненты: Table1(со вкладки BDE), DataSource1(со вкладки DataAccess), DBGrid1 (со вкладки DataControls). НАстраиваешь их так:
- у компонента Table1 в свойстве DatabaseName указываешь псевдоним БД, в свойстве TableName указываешь имя нужной таблицы;
- у компонента DataSource1 в свойстве DataSet1 Указываешь Table1;
- у компонента DBGrid1 в свойстве DataSource указываешь DataSource1.
Далее, открываешь два раза кнопку SpeedButton и пишешь там такой код:
Код:
Table1.Insert; //добавить запись
Вот. Для остальных действий процедуры будут такие:
Код:
Table1.Insert; //добавить запись
Table1.Prior; //предыдущая запись
Table1.Next; //следующая запись
Table1.Last; //последняя в таблице запись
Table1.First; //первая в таблице запись
Table1.Delete; //удалить запись
Table1.Edit; //редактировать запись
Table1.Post; //вставить запись
Table1.Refresh; //обновить запись
Естественно, что эти процедуры пишутся в разных кнопках. Вот
Благодарю) попробую, потом отпишу о результатах.
Vavik вне форума Ответить с цитированием
Старый 05.05.2009, 15:16   #6
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Цитата:
Благодарю) попробую, потом отпишу о результатах.
лучше отзыв))
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 05.05.2009, 15:50   #7
Vavik
Пользователь
 
Аватар для Vavik
 
Регистрация: 27.04.2009
Сообщений: 11
По умолчанию

Ммм, а почему я не могу в DBGride ничего редактировать...Ну или когда добавляю пустую строку, то не могу ничего в её поля вбить ?

Последний раз редактировалось Vavik; 05.05.2009 в 16:15.
Vavik вне форума Ответить с цитированием
Старый 05.05.2009, 16:19   #8
Dark_Spirit
Форумчанин
 
Аватар для Dark_Spirit
 
Регистрация: 05.02.2009
Сообщений: 324
По умолчанию

а посмотреть свойство: ReadOnly?
Тяжело быть бестолковым.....
Dark_Spirit вне форума Ответить с цитированием
Старый 05.05.2009, 16:31   #9
Vavik
Пользователь
 
Аватар для Vavik
 
Регистрация: 27.04.2009
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Dark_Spirit Посмотреть сообщение
а посмотреть свойство: ReadOnly?
Не, всё равно не хочет ничего вводить.
Vavik вне форума Ответить с цитированием
Старый 05.05.2009, 17:10   #10
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

А свойство Active=True у компонента Table поставили?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменение свойств кнопки через WinAPI Никки Win Api 12 20.09.2009 15:01
перенос данных из DBGrid в DBGrid KingSize БД в Delphi 17 24.04.2009 09:30
работа с БД (компонент ADO,dbGrid) через dll oWish Помощь студентам 4 29.02.2008 12:23
Изменение параметров ListView через ShowMessage Romanbl4 Компоненты Delphi 5 29.06.2007 15:46
Изменение размеров столбцов в DBGrid Elena БД в Delphi 1 15.05.2007 11:41