|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
Добавление/изменение/удаление записей в БД
(Delphi+ADO+Postgresql)
Как менять/добавлять/удалять данные в БД через DBGrid. Тоесть нажал на поле DBGrida, редактировал значение и изменения сохранились в бд. Поставил курсор на строке, удалил её из DBGrida и в бд она тоже удалилась. Создал пустую строку, заполнил ячейки данными и сохранил. Вот как-то так. Вроде говорят через DataSet, кто-нибудь может пару строчек кода, как пример показать ? |
#2
|
|||
|
|||
Код:
procedure TForm5.N1Click(Sender: TObject); begin IF DBGrid1.DataSource=Form1.DataSource1 then Form1.ADOTable1.Append; IF DBGrid1.DataSource=Form1.DataSource2 then Form1.ADOTable2.Append; IF DBGrid1.DataSource=Form1.DataSource3 then Form1.ADOTable3.Append; IF DBGrid1.DataSource=Form1.DataSource4 then Form1.ADOTable4.Append; end; procedure TForm5.N2Click(Sender: TObject); begin If Application.MessageBox('Вы действительно хотите удалить эту запись','!!!Внимание!!!',MB_OKCANCEL)=id_OK then begin IF DBGrid1.DataSource=Form1.DataSource1 then Form1.ADOTable1.Delete; IF DBGrid1.DataSource=Form1.DataSource2 then Form1.ADOTable2.Delete; IF DBGrid1.DataSource=Form1.DataSource3 then Form1.ADOTable3.Delete; IF DBGrid1.DataSource=Form1.DataSource4 then Form1.ADOTable4.Delete; end; end; procedure TForm5.Button1Click(Sender: TObject); begin IF DBGrid1.DataSource=Form1.DataSource1 then begin if Form1.ADOTable1.Modified then Form1.ADOTable1.Post; end; IF DBGrid1.DataSource=Form1.DataSource2 then begin if Form1.ADOTable2.Modified then Form1.ADOTable2.Post; end; IF DBGrid1.DataSource=Form1.DataSource3 then begin if Form1.ADOTable3.Modified then Form1.ADOTable3.Post; end; IF DBGrid1.DataSource=Form1.DataSource4 then begin if Form1.ADOTable3.Modified then Form1.ADOTable3.Post; end; end; N1Click - через popupmenu добавляю N2Click - удаляю редактируется грид сам по себе а Button1Click - кнопка сохранить |
#3
|
|||
|
|||
Ммм, такая фигня возникла, не могу ничего редактировать в ячейках DBGrida. Если подключаться через Table, то всё норм, но через него к POstgresqlю не подключишься, использую ADOConnection, ADOQuery. ReadOnly:=false, всё вроде подключено. ПОчему так ?
|
#4
|
||||
|
||||
Если запрос сложный, т.е. используется несколько таблиц связаных отношением 1:N то так и будет.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#5
|
|||
|
|||
Цитата:
Select * from Table |
#6
|
||||
|
||||
Мдаааа, это действительно чрезвычайно сложный запрос
А ключевые поля в этой табле имеются? Сталкивался как-то с таким при отсутствии таковых тоже невозможно было редактировать, что в общем-то и понятно. Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |