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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.12.2014, 15:06   #1
Nekala
Пользователь
 
Регистрация: 19.02.2011
Сообщений: 25
По умолчанию Редактирование записи

Почему-то запись не редактируется( Подскажите,пожалуйста, почему?

код
Код:
procedure TForm9.Button2Click(Sender: TObject);
begin
Try
            DataModule2.ADOConnection1.BeginTrans;
              with DataModule2.Redakt do
                begin
                  Parameters.ParamByName('Vozrast').Value:=edit20.text;
                end;
              DataModule2.ADOConnection1.CommitTrans;
        except
          DataModule2.ADOConnection1.RollbackTrans;
          ShowMessage('Невозможно выполнить. Повторите!');
        end;
end;
SQL
Код:
UPDATE Resultat  set Vozrast=:Vozrast where id_FIO=:ID_FIO

Последний раз редактировалось Stilet; 12.12.2014 в 15:08.
Nekala вне форума Ответить с цитированием
Старый 12.12.2014, 15:09   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

А ID_FIO где задается?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.12.2014, 15:18   #3
Nekala
Пользователь
 
Регистрация: 19.02.2011
Сообщений: 25
По умолчанию

Добавила.: DataModule2.ADOQuery4.Parameters[0].Value:= DBGrid1.Datasource.DataSet.FieldByN ame('Id_FIO').Value;
Теперь ошибка: в AdoQvery1 не найдено поле Id_FIO'

запрос в адоквери
SELECT Rezultat.FIO, Itog.Vozrast, Pol.Pol, Gruppa.Name_Gruppa, Itog.PJT, Itog.CMM, Itog.CM, Itog.MO
FROM Rezultat INNER JOIN (Pol INNER JOIN (Gruppa INNER JOIN Itog ON Gruppa.Id_Gruppa = Itog.Id_Gruppa) ON Pol.Id_Pol = Itog.Id_Pol) ON Rezultat.Id_FIO = Itog.Id_FIO;

Последний раз редактировалось Nekala; 12.12.2014 в 15:30. Причина: добавляла запись
Nekala вне форума Ответить с цитированием
Старый 12.12.2014, 16:54   #4
D-mon
Форумчанин
 
Регистрация: 22.06.2007
Сообщений: 414
По умолчанию

Код:
procedure TForm9.Button2Click(Sender: TObject);
begin
Try
            DataModule2.ADOConnection1.BeginTrans;
              with DataModule2.Redakt do
                begin
                  Parameters.ParamByName('Vozrast').Value:=edit20.text;
                  Open;  
                end;
              DataModule2.ADOConnection1.CommitTrans;              
        except
          DataModule2.ADOConnection1.RollbackTrans;
          ShowMessage('Невозможно выполнить. Повторите!');
        end;
end;
Нет невыполнимых задач, всё дело времени...
D-mon вне форума Ответить с цитированием
Старый 12.12.2014, 20:09   #5
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Код:
procedure TForm9.Button2Click(Sender: TObject);
begin
 Try
    DataModule2.ADOConnection1.BeginTrans;
     with DataModule2.Redakt do
      begin
       Parameters.ParamByName('Vozrast').Value:=edit20.text;
       ExecSQL; // Попробуй что скажет
      // И потом откройте DataModule2.Redakt
      end;
      DataModule2.ADOConnection1.CommitTrans;
 except
          DataModule2.ADOConnection1.RollbackTrans;
          ShowMessage('Невозможно выполнить. Повторите!');
 end;
end;
Было бы хорошо если посмотрели вы суда http://devdelphi.ru/?p=45
xxbesoxx вне форума Ответить с цитированием
Старый 12.12.2014, 22:49   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
Теперь ошибка: в AdoQvery1 не найдено поле Id_FIO'
Начали за здравие, кончили за упокой...
Во-первых, ты бы с запросами определилась - тебе такое или такое нужно.
Во-вторых, во втором запросе действительно нет параметра такого )
Непонятно что ты хочешь... Если обновить то:
Код:

procedure TForm9.Button2Click(Sender: TObject);
begin
Try
            DataModule2.ADOConnection1.BeginTrans;
              with DataModule2.Redakt do
                begin 
                  sql.text:='UPDATE Resultat  set Vozrast=:Vozrast where id_FIO=:ID_FIO';
                  Parameters.ParamByName('Vozrast').Value:=edit20.text;
                  Parameters.ParamByName('ID_FIO').Value:=Чему-то;
                  if ExecSQL=0 then 
                   ShowMessage('Записей на обновление с таким IDFIo нет.')
                 else 
                   DataModule2.ADOConnection1.CommitTrans;
                end;
        except
          DataModule2.ADOConnection1.RollbackTrans;
          ShowMessage('Невозможно выполнить. Повторите!');
        end;
end;
А если запрос SELECT нужен то где там ставить параметр?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.12.2014, 12:47   #7
Nekala
Пользователь
 
Регистрация: 19.02.2011
Сообщений: 25
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Код:
   Parameters.ParamByName('ID_FIO').Value:=Чему-то;
А если запрос SELECT нужен то где там ставить параметр?
Вот как раз чему оно ровно и не могу сделать((

Сделала уже так:
SQL
Код:
SELECT Rezultat.FIO, Itog.Vozrast, Pol.Pol, Gruppa.Name_Gruppa, Itog.PJT, Itog.CMM, Itog.CM, Itog.MO, Rezultat.Id_FIO 
FROM Rezultat INNER JOIN (Pol INNER JOIN (Gruppa INNER JOIN Itog ON Gruppa.Id_Gruppa = Itog.Id_Gruppa) ON Pol.Id_Pol = Itog.Id_Pol) ON Rezultat.Id_FIO = Itog.Id_FIO;
Код:
 procedure TForm9.Button2Click(Sender: TObject);
begin
Try DataModule2.ADOConnection1.BeginTrans;
    with DataModule2.Redakt do
      begin
        Parameters.ParamByName('Vozrast').Value:=edit20.text;
         DataModule2.Redakt.Parameters[0].Value:= form3.DBGrid1.Datasource.DataSet.FieldByName('Id_FIO').Value;
      end;
    DataModule2.ADOConnection1.CommitTrans;
  except
  DataModule2.ADOConnection1.RollbackTrans;
  ShowMessage('Íåâîçìîæíî âûïîëíèòü. Ïîâòîðèòå!');
  end;
  end;
Но все равно он это поле не видит
Nekala вне форума Ответить с цитированием
Старый 15.12.2014, 13:21   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
Вот как раз чему оно ровно и не могу сделать((
А как мы можем понять чему оно должно быть равно, если ты не поясняешь откуда информация берется?
Не знаю кому как, а мне твои запросы совершенно непонятны.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.12.2014, 14:19   #9
Nekala
Пользователь
 
Регистрация: 19.02.2011
Сообщений: 25
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А как мы можем понять чему оно должно быть равно, если ты не поясняешь откуда информация берется?
У меня есть две таблицы: схема данных
Снимок.PNG
Есть форма, на которой Dbgrid. Dbgrid привязан к ADOQquery, соответсвенно информация отображается в гриде исходя из запроса. В этом ADOQquery запрос
Код:
SELECT Rezultat.FIO, Itog.Vozrast, Pol.Pol, Gruppa.Name_Gruppa, Itog.PJT, Itog.CMM, Itog.CM, Itog.MO, Rezultat.Id_FIO 
FROM Rezultat INNER JOIN (Pol INNER JOIN (Gruppa INNER JOIN Itog ON Gruppa.Id_Gruppa = Itog.Id_Gruppa) ON Pol.Id_Pol = Itog.Id_Pol) ON Rezultat.Id_FIO = Itog.Id_FIO;
Когда нажимаю два раза по строке в Dbgrid, у меня открывается форма редактирования записи с заполненными editами. Что-то правлю, например фамилию не так записала и нажимаю "сохранить редактирование". На кнопку "сохранить редактирование" код
Код:
ry DataModule2.ADOConnection1.BeginTrans;
    with DataModule2.Redakt do
      begin
        Parameters.ParamByName('Vozrast').Value:=edit20.text;
         DataModule2.Redakt.Parameters[0].Value:= form3.DBGrid1.Datasource.DataSet.FieldByName('Id_FIO').Value;
        //DataModule2.Redakt.Parameters[0].Value:= form3.DBGrid1.Datasource.DataSet.FieldByName('Id_FIO').Value;
      end;
    DataModule2.ADOConnection1.CommitTrans;
  except
  DataModule2.ADOConnection1.RollbackTrans;
  ShowMessage('Íåâîçìîæíî âûïîëíèòü. Ïîâòîðèòå!');
  end;
  end;
SQL ADOQvery, которую я переименовала в Redakt
Код:
UPDATE Itog  set Vozrast=:Vozrast where id_FIO=:ID_FIO
(решила начать хотя бы с редактирования поля Vozrast. Это поле расположено в таблице Itog)

Последний раз редактировалось Nekala; 15.12.2014 в 14:22. Причина: исправила грамматические ошибки
Nekala вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Редактирование записи carders SQL, базы данных 2 28.03.2014 09:01
Редактирование записи в реестре YTP0 Общие вопросы Delphi 3 21.12.2013 19:54
Редактирование записи Михаил Юрьевич БД в Delphi 3 21.01.2013 21:28
Добавление и редактирование записи в бд Spacer C++ Builder 0 24.04.2011 10:16
Редактирование записи ado palochka БД в Delphi 7 24.05.2010 10:58