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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.03.2014, 22:07   #1
Михаил Юрьевич
Форумчанин
 
Аватар для Михаил Юрьевич
 
Регистрация: 25.12.2007
Сообщений: 655
По умолчанию Ошибка в запросе

Нужно отредактировать запись по полю с номером 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;
За частые поиски был забанен во всех известных
поисковых системах!
Михаил Юрьевич вне форума Ответить с цитированием
Старый 17.03.2014, 22:57   #2
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

close; зачем тут?
eval вне форума Ответить с цитированием
Старый 17.03.2014, 23:02   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
close; зачем тут?
Если он этот же Query1 перед этим использовал для выборки данных (что весьма вероятно), то Close ещё как при чём!


Михаил Юрьевич, не жадничайте, добавьте ЕЩЁ один TQuery, через который и производите UPDATE, не стоит всё в один query запихивать!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 17.03.2014, 23:53   #4
Михаил Юрьевич
Форумчанин
 
Аватар для Михаил Юрьевич
 
Регистрация: 25.12.2007
Сообщений: 655
По умолчанию

Спасибо попробую

Сделал еще TQuery и теперь с таким запросом он почему то не редактирует запись,а создает новую.
Код:
 with Query1 do
 begin

  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;
За частые поиски был забанен во всех известных
поисковых системах!

Последний раз редактировалось Stilet; 18.03.2014 в 09:11.
Михаил Юрьевич вне форума Ответить с цитированием
Старый 18.03.2014, 09:12   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
не редактирует запись,а создает новую.
Не может этот запрос создавать новую. Разве что ты не создал триггер.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.12.2014, 13:06   #6
Ship_1
Форумчанин
 
Регистрация: 10.02.2014
Сообщений: 526
По умолчанию

Не создавать же новую тему из-за этого.
У меня ошибка возникает из-за кавычек.
Как добавить в поле запись с кавычками так, чтобы её не возникло? Например, как сделать, чтоб здесь
Код:
sldb.ExecSQL('insert into test (Name_pos) values("'+Edit1.Text+'")');
не произошла ошибка, если
Код:
Edit1.Text:='Мыло "Хозяйственное"';
, которая произойдёт из-за двойных кавычек с сообщением о синтаксической ошибке?
Ship_1 вне форума Ответить с цитированием
Старый 03.12.2014, 13:26   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Заменить каждую кавычку на две
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 03.12.2014, 14:38   #8
Ship_1
Форумчанин
 
Регистрация: 10.02.2014
Сообщений: 526
По умолчанию

Хм... Банально, но работает.. Спасибо!
Ship_1 вне форума Ответить с цитированием
Старый 03.12.2014, 15:41   #9
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Программирование все банально, когда знаешь что, когда и как применить. Знать не банально
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ошибка в запросе CodeNOT PHP 0 14.12.2012 17:44
Ошибка в запросе КристинкаМЧС БД в Delphi 22 04.07.2012 12:32
ошибка в запросе Анастас Помощь студентам 2 06.11.2011 22:50
Ошибка в запросе artemavd БД в Delphi 12 21.02.2011 00:06
Ошибка в запросе LIKE Ele БД в Delphi 2 22.05.2010 13:07