Topic: Почему не работает...

Добрый день.
Button3 сохраняет в таблицу zapros запись. Пробовал в различных вариантах. Один раз даже захватил id записи, но предварительно была ошибка - программа ругалась на id.

procedure Form_Main_Button3_OnClick (Sender: TObject; var Cancel: boolean);

            begin
             if Form_Main.dbAction = 'NewRecord' then Form_Main.Tag := 1 else Form_Main.Tag := 0;

         end;

procedure Form_Main_Button3_OnAfterClick (Sender: TObject);

 var
  //  zaprNewID: string;
        zaprNewID:integer;
    begin
     if Form_Main.Tag = 1 then
     begin
  //       zaprNewID := SQLExecute('SELECT id.zapros =' + IntToStr(Form_Main.Button3.dbGeneralTableId));
      //     zaprNewID := SQLExecute('SELECT count(id) FROM Zapros WHERE (id= ''' + IntToStr(Form_Main.Button3.dbGeneralTableID) + ''')');
           zaprNewID := Form_Main.Button3.dbGeneralTableId;
                ShowMessage (zaprNewID);
           end;
      end;

Re: Почему не работает...

что именно вы хотите записать и для чего Вы пытаетесь получить id?

Re: Почему не работает...

мне нужно записать в переменную id.zapros (id записи из таблицы Zapros, которая сохраняется при нажатии кнопки сохранить Button3).

procedure Form_Main_Button3_OnClick (Sender: TObject; var Cancel: boolean);

            begin
             if Form_Main.dbAction = 'NewRecord' then Form_Main.Tag := 1 else Form_Main.Tag := 0;

         end;

procedure Form_Main_Button3_OnAfterClick (Sender: TObject);

 var
    zaprNewID: string;
            begin
     if Form_Main.Tag = 1 then
     begin
         zaprNewID := SQLExecute('SELECT( id????) from zapros where id=' + IntToStr(Form_Main.Button3.dbGeneralTableId));
                                end;
      end;

Re: Почему не работает...

то есть вам нужен  id последней записи?

id.zapros := SQLExecute('SELECT MAX(id) FROM Zapros');

Re: Почему не работает...

Спасибо.
Похоже на баг в программе...
Работают все варианты включая и Ваш после того как закомментировал строки:

//  begin
   //   if Form_Main.Tag = 1 then

6 (edited by sibprogsistem 2020-05-13 12:33:38)

Re: Почему не работает...

Andrei wrote:

Спасибо.
Похоже на баг в программе...
Работают все варианты включая и Ваш после того как закомментировал строки:

//  begin
   //   if Form_Main.Tag = 1 then

получается что этот скрипт не сработал

 if Form_Main.dbAction = 'NewRecord' then Form_Main.Tag := 1 else Form_Main.Tag := 0;

как у Вас открывается форма
через показать форму или новая запись?

Re: Почему не работает...

получается что этот скрипт не сработал

 if Form_Main.dbAction = 'NewRecord' then Form_Main.Tag := 1 else Form_Main.Tag := 0;

как у Вас открывается форма
через открыть форму или новая запись?

Через "Показать форму"...

Re: Почему не работает...

сделайте через ( новая запись)
тогда Action  будет  'NewRecord'

Re: Почему не работает...

Понял. Учту.
Попутный вопрос.
Можно ли при сохранении в таблицу zapros (нажатие Button3) очистить какое ни будь обязательное поле на форме Form_Main (допустим Edit1). Хочу сделать защиту (от дурака) на двойное сохранение записи.

10 (edited by sibprogsistem 2020-05-13 13:55:55)

Re: Почему не работает...

в этом случае нужно писать скрипт сохранения и в нем делать проверки..