Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка в запросе 
:(
    Опции темы
Михалыч
Дата 17.3.2014, 21:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Нужно отредактировать запись по полю с номером 10, выдает ошибку "Cannot perform this operation on an open dataset"    FireDAC Sqlite

Код

 with Query1 do
 begin
close;
  SQL.Clear;
  SQL.Add('UPDATE PAPKA SET NAME_PAPKA=:NAME WHERE ID_PAPKA=:IDGR');
ParamByName('NAME').AsString :=Edit1.text;
  ParamByName('IDGR').AsInteger := 10;
  ExecSQL;
 
   end;



--------------------
За частый поиск был забанен во всех известных поисковых системах.
Обиженных  комодераторов: 1 
PM MAIL   Вверх
Antimol
Дата 17.3.2014, 22:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 118
Регистрация: 28.7.2007
Где: Украина, Киев

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



В общем это выглядит так (при условии создания и уничтожения компонента Query):

Код

var
 Query: TFDQuery;
begin
var
  Query: TFDQuery;
begin
  Query := TFDQuery.Create(nil);
  try
    Query.Connection := ...;
    Query.SQL.Text := 'UPDATE PAPKA SET NAME_PAPKA=:NAME WHERE ID_PAPKA=:IDGR';
    Query.ParamByName('NAME').Value := Edit1.text;
    Query.ParamByName('IDGR').Value := 10;
    Query.ExecSQL;
  finally
    FreeAndNil(Query);
  end; 
end;


У Вас же скорее всего датасет открыт, его нужно либо закрыть либо использовать какой то другой.

Вот также ссылка на Cannot perform this operation on a closed dataset
--------------------
Лучшее спасибо это "+" к репутации.   Мой блог: ИНФОРМАТИЗАЦИЯ, и mirsovetov.net. Написание программ, исправление ошибок, статьи....
PM MAIL WWW ICQ   Вверх
Михалыч
Дата 17.3.2014, 22:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Antimol @  17.3.2014,  22:15 Найти цитируемый пост)
У Вас же скорее всего датасет открыт, его нужно либо закрыть либо использовать какой то другой.

А как его закрыть, я уже все перепробовал



--------------------
За частый поиск был забанен во всех известных поисковых системах.
Обиженных  комодераторов: 1 
PM MAIL   Вверх
Данкинг
Дата 17.3.2014, 22:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

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



Цитата(Михалыч @  17.3.2014,  23:51 Найти цитируемый пост)
А как его закрыть

Query1.Close ?


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Михалыч
Дата 17.3.2014, 22:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Данкинг @  17.3.2014,  22:53 Найти цитируемый пост)
Query1.Close ? 

Да



--------------------
За частый поиск был забанен во всех известных поисковых системах.
Обиженных  комодераторов: 1 
PM MAIL   Вверх
Antimol
Дата 18.3.2014, 00:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 118
Регистрация: 28.7.2007
Где: Украина, Киев

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



Поскольку используется with Query1 do - операция Close может расцениваться неоднозначно. Конечно лучше писать Query1.Close 
--------------------
Лучшее спасибо это "+" к репутации.   Мой блог: ИНФОРМАТИЗАЦИЯ, и mirsovetov.net. Написание программ, исправление ошибок, статьи....
PM MAIL WWW ICQ   Вверх
Poseidon
Дата 18.3.2014, 10:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

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



Цитата(Antimol @  18.3.2014,  00:04 Найти цитируемый пост)
Поскольку используется with Query1 do - операция Close может расцениваться неоднозначно. 
В данном случае Close расценивается вполне однозначно и аналогично Query1.Close. Вот если бы там было, к примеру 
Код

with Form1, Query1 do 
  Close

то можно было бы говорить о какой-то неодназначности.


--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

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

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


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


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

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

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


 




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


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

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