Форум программистов, компьютерный форум, киберфорум
Lazarus
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.61/18: Рейтинг темы: голосов - 18, средняя оценка - 4.61
0 / 0 / 0
Регистрация: 09.04.2015
Сообщений: 6
1

Удаление и редактирование записей DbGrid Firebird

28.04.2015, 21:56. Показов 3607. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет! Не смог в интернете найти решение своей проблемы, прошу прощения, если где-то на форуме уже обсуждался мой вопрос Пытаюсь написать клиентское приложение к базе FireBird 2.5 на Lazarus. Не могу разобраться как удалить выбранную в DbGrid запись. Данный код:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
procedure Tworkspace.BitBtn3Click(Sender: TObject);
var t:TModalResult;
  st:string;
begin
  t:=MessageDlg('Вы действительно хотите удалить информацию о сотруднике?',TMsgDlgType.mtConfirmation,[mbYes,mbNo],0);
  if t=6 then // 6 - номер кнопки Yes по умолчанию
     begin
  st:=SQLQuery1.FieldByName('id').AsString;
  SQLQuery1.Active:=False; //отключение SQLQuery
  SQLQuery1.SQL.Clear; //Стираем любой предыдущий запрос
  SQLQuery1.SQL.Add('DELETE FROM Sotrudnik WHERE id="'+st+'"');//запрос
  SQLQuery1.ExecSQL;//Выполняем запрос(DELETE) и открываем набор данных
  SQLTransaction1.Commit;
     end
  else
end;
Не работает и приложение падает с ошибкой. Скриншот ниже:
Удаление и редактирование записей DbGrid Firebird

Прошу помочь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.04.2015, 21:56
Ответы с готовыми решениями:

Поиск записей по дате в DBGrid и окрашивание записей
Всем привет! очень нуждаюсь в вашей помощи.пишу программу для диплома,и столкнулся со следующей...

Firebird SQLQuery DBGrid - порядковый номер строки
Подскажите имеется БД Firebird 2.5 Использую для вывода списка сотрудников DBGrid, даннные через...

Редактирование и удаление записи. FireBird.
Как запретить редактирование и удаление родительской записи, если у нее есть дочерние записи - FK...

Редактирование записей в DBGrid
Вечер добрый. Необходимо организовать редактирование записей в таблице Access подключенную через...

9
Модератор
3490 / 2613 / 741
Регистрация: 19.09.2012
Сообщений: 7,974
28.04.2015, 22:13 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Delphi
1
SQLQuery1.Delete;
1
0 / 0 / 0
Регистрация: 09.04.2015
Сообщений: 6
28.04.2015, 23:11  [ТС] 3
Спасибо, но можно поподробнее, пожалуйста, куда вставить данный код?
0
Модератор
3490 / 2613 / 741
Регистрация: 19.09.2012
Сообщений: 7,974
29.04.2015, 00:25 4
Цитата Сообщение от RxStrike Посмотреть сообщение
куда вставить данный код?
Туда, где надо удалить выбранную в Гриде запись.
0
0 / 0 / 0
Регистрация: 09.04.2015
Сообщений: 6
03.05.2015, 19:27  [ТС] 5
Еще одна просьба помочь Найдите, пожалуйста, ошибку в моём коде на удаление выбранной в DbGrid записи:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
procedure Teditsotr.BitBtn1Click(Sender: TObject);
var id, familia, imya, otchestvo, otdel, dolsh, adress:string;
begin
Familia:=edit1.text;
Imya:=edit2.text;
Otchestvo:=edit3.text;
Otdel:=edit4.text;
Dolsh:=edit5.text;
Adress:=edit6.text;
id:=workspace.SQLQuery1.FieldByName('id').AsString;
workspace.SQLQuery1.Close;
workspace.SQLQuery1.SQL.Clear;
 
workspace.SQLQuery1.SQL.Add('UPDATE  sotrudnik SET (Familia , Imya , Otchestvo , Otdel , Dolsh , Adress) VALUES('+#39+edit1.text+#39+', '+#39+edit2.text+#39+', '+#39+edit3.text+#39+', '+#39+edit4.text+#39+', '+#39+edit5.text+#39+', '+#39+edit6.text+#39+'); WHERE id='+id);
 
ShowMessage(workspace.SQLQuery1.SQL.Text);
workspace.SQLQuery1.ExecSQL;
workspace.SQLQuery1.SQL.Text:='SELECT * from  sotrudnik;';
workspace.SQLQuery1.Open;
end;
Я подозреваю сам запрос SQLQuery1.SQL.Add
0
Модератор
3490 / 2613 / 741
Регистрация: 19.09.2012
Сообщений: 7,974
03.05.2015, 21:53 6
Цитата Сообщение от RxStrike Посмотреть сообщение
удаление выбранной в DbGrid записи
А где удаление-то ?
UPDATE изменяет запись, а не удаляет.
0
0 / 0 / 0
Регистрация: 09.04.2015
Сообщений: 6
06.05.2015, 06:22  [ТС] 7
Цитата Сообщение от FIL Посмотреть сообщение
А где удаление-то ?
UPDATE изменяет запись, а не удаляет.
Извиняюсь, код на обновление записи. Опечятка.
0
Модератор
3490 / 2613 / 741
Регистрация: 19.09.2012
Сообщений: 7,974
06.05.2015, 08:59 8
Точка с запятой в SQL-запросе обозначаеть конец этого сАмого запроса, поэтому WHERE уже не учитывается.
Если под ошибкой подразумеваетя что-то другое, то напиши что.
0
0 / 0 / 0
Регистрация: 09.04.2015
Сообщений: 6
06.05.2015, 10:53  [ТС] 9
Цитата Сообщение от FIL Посмотреть сообщение
Точка с запятой в SQL-запросе обозначаеть конец этого сАмого запроса, поэтому WHERE уже не учитывается.
Если под ошибкой подразумеваетя что-то другое, то напиши что.
Ошибку прикрепил.
Вот код кнопки редактирования.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
procedure Teditsotr.BitBtn1Click(Sender: TObject);
var id, familia, imya, otchestvo, otdel, dolsh, adress:string;
begin
Familia:=edit1.text;
Imya:=edit2.text;
Otchestvo:=edit3.text;
Otdel:=edit4.text;
Dolsh:=edit5.text;
Adress:=edit6.text;
 
id:=workspace.SQLQuery1.FieldByName('id').AsString;
workspace.SQLQuery1.Close;
workspace.SQLQuery1.SQL.Clear;
workspace.SQLQuery1.SQL.Add('UPDATE  sotrudnik SET (Familia , Imya , Otchestvo , Otdel , Dolsh , Adress) VALUES('+#39+edit1.text+#39+', '+#39+edit2.text+#39+', '+#39+edit3.text+#39+', '+#39+edit4.text+#39+', '+#39+edit5.text+#39+', '+#39+edit6.text+#39+') WHERE id='+id);
ShowMessage(workspace.SQLQuery1.SQL.Text);
workspace.SQLQuery1.ExecSQL;
workspace.SQLQuery1.SQL.Text:='SELECT * from  sotrudnik;';
workspace.SQLQuery1.Open;
end;
Миниатюры
Удаление и редактирование записей DbGrid Firebird  
0
0 / 0 / 0
Регистрация: 09.04.2015
Сообщений: 6
06.05.2015, 11:06  [ТС] 10
Код ошибки, идущий после:
Delphi
1
ShowMessage(workspace.SQLQuery1.SQL.Text);
Миниатюры
Удаление и редактирование записей DbGrid Firebird  
0
06.05.2015, 11:06
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.05.2015, 11:06
Помогаю со студенческими работами здесь

Как сделать редактирование записи в таблице DBgrid (база firebird) двойным нажатием кнопки мыши
Есть база данных Firebird (fdb), на форме Datasourse, IbTable, IBQuery, IBDatabase, IBTransaction....

Редактирование нескольких записей в DbGrid
Добрый день. Необходимо сделать проверку на совпадение текста в ячейке BDGrid'е и в Edit'е, и если...

Удаление и редактирование записей из БД
Здравствуйте. Есть небольшая проблемка: когда я выбираю записи которые нужно удалить, и...

Удаление и редактирование записей
Добрый день всем. Есть такой вопрос, есть база Access в ней через форму нужно редактировать и...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru