Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Удаление записи из DBGrid. 
:(
    Опции темы
Ce4kok
Дата 19.5.2010, 05:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 13.5.2010

Репутация: нет
Всего: нет



Приветствую всех!
У меня возникла проблемка:
Имею 3 DBGrid и в каждом из них располагается по одной из 3-х связанных таблиц. В самой последней таблице не могу удалить записи, а в предыдущих могу.

Во всех таблицах для удаления записей я использовал вот такой код:
ADOTable2.Open;
DBGrid1.SelectedRows.Delete;
ADOTable2.Delete;

В третьей же я пытался удалить и с помощью SQL-запроса, но всё безрезультатно - выдаёт ошибки.
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('DELETE FROM Subseries where Обозначение:=r ');
ADOQuery1.Parameters.FindParam('r').Value:=DBGrid3.SelectedField.Text;

ADOQuery1.Open;
DataSource3.DataSet := ADOQuery1;


Как быть, что делать???
Знающие люди, подскажите плиз!=)
Буду очень признателен за помощь.
PM MAIL   Вверх
Frees
Дата 19.5.2010, 06:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 16
Всего: 54



Цитата(Ce4kok @  19.5.2010,  08:03 Найти цитируемый пост)
ADOQuery1.SQL.Add('DELETE FROM Subseries where Обозначение:=r ');

Код

ADOQuery1.SQL.Add('DELETE FROM Subseries where Обозначение=:r ');
.......
DBGrid3.DataSource.dataset.close;
DBGrid3.DataSource.dataset.open;



--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
Ce4kok
Дата 19.5.2010, 07:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 13.5.2010

Репутация: нет
Всего: нет



У меня постоянно вылетает ошибка (каким бы я способом не пытался удалить запись):
"Текущий проводник не поддерживает возврат нескольких наборов записей в результате одной операции"

Как мне быть????

Это сообщение отредактировал(а) Ce4kok - 19.5.2010, 07:24
PM MAIL   Вверх
superVad
Дата 19.5.2010, 19:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 735
Регистрация: 6.4.2006
Где: Черкассы, Украина

Репутация: 7
Всего: 15



Из грида удалять не надо - если удалишь из таблицы то и в гриде ее не станет. Они же связаны.

И вообще покажи код процедуры удаления - ато по приведенным отрывкам не очень понятно.
PM MAIL   Вверх
Ce4kok
Дата 20.5.2010, 07:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 13.5.2010

Репутация: нет
Всего: нет



В первых двух таблицах удалял вот этим способом:

ADOTable2.Open;
DBGrid2.SelectedRows.Delete;
ADOTable2.Delete;


Всё работает хорошо, а вот в последней таблице что-то не так.

Пробовал удалять с помощью SQL запроса, но всё так же безрезультатно:

ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Delete from Subseries where Обозначение="'+ADOTable3.Fields.Fields[0].CurValue+'" ' );
ADOQuery1.Open;

PM MAIL   Вверх
superVad
Дата 20.5.2010, 09:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 735
Регистрация: 6.4.2006
Где: Черкассы, Украина

Репутация: 7
Всего: 15



Ну ладно. Предположим у тебя таблица открыта в ADOTable1 (хотя я предпочитаю датасет) и подключена к гриду. Запрос на удаление ты делаешь в ADOQuery1.
Тогда попробуй так.
Код
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Delete from Subseries where Обозначение="'+ADOTable3.Fields.Fields[0].CurValue+'" ' );
ADOQuery1.ExecSQL;
//возможно надо будет добавить тут
//ADOQuery1.Connection.CommitTrans;
ADOTable1.Close;
ADOTable1.Open;

PM MAIL   Вверх
Ce4kok
Дата 20.5.2010, 15:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 13.5.2010

Репутация: нет
Всего: нет



Огромное спасибо!!!! Вроде как всё работает!  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0440 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.