1 (edited by sibprogsistem 2019-04-03 17:19:21)

Topic: [скрипт] запись в разные таблицы одной кнопкой с сохранением связи

procedure Form1_Button1_OnClick (Sender: TObject; var Cancel: boolean);
var
maxID:string;
begin
      // запись в таблицу B
    SQLExecute('INSERT INTO b (sn, model, status) VALUES ("'+Form1.Edit4.Text+'", "'+Form1.Edit5.Text+'","'+Form1.Edit6.Text+'")');
    // получаем id последней записи в таблице В
   maxID := SQLExecute('SELECT MAX(id) FROM b');
   // запись в таблицу A
    SQLExecute('INSERT INTO a (firstname, twoname, lastname, id_b) VALUES ("'+Form1.Edit1.Text+'", "'+Form1.Edit2.Text+'","'+Form1.Edit3.Text+'", "'+maxID+'")');
   // обновление таблицы данных главной формы
   Form1.TableGrid1.dbUpdate;
end;
Post's attachments

Attachment icon test.7z 3.68 kb, 230 downloads since 2019-04-03 

Re: [скрипт] запись в разные таблицы одной кнопкой с сохранением связи

эту строку

maxID := SQLExecute('SELECT MAX(id) FROM b');

можно заменить на эту

maxID := IntToStr(Last_Insert_id);
Dmitry.

Re: [скрипт] запись в разные таблицы одной кнопкой с сохранением связи

Здравствуйте! Данный скрипт только добавляет новую запись, а как сделать такое же редактирование уже существующих записей в разных таблицах с помощью одной кнопки?

Re: [скрипт] запись в разные таблицы одной кнопкой с сохранением связи

Alexandr wrote:

Здравствуйте! Данный скрипт только добавляет новую запись, а как сделать такое же редактирование уже существующих записей в разных таблицах с помощью одной кнопки?

procedure eee_Button2_OnClick (Sender: TObject; var Cancel: boolean);
var
ID:string = SQLExecute('SELECT id_b FROM a WHERE id='+Form1.TableGrid1.sqlValue); // получить идентификатор записи таблицы b
begin
   // запись в таблицу A
   SQLExecute('UPDATE a SET firstname="'+eee.Edit1.Text+'", twoname="'+eee.Edit2.Text+'", lastname="'+eee.Edit3.Text+'" WHERE id=' +Form1.TableGrid1.sqlValue );
   // запись в таблицу B
   SQLExecute('UPDATE b SET sn="'+eee.Edit4.Text+'", model="'+eee.Edit5.Text+'", status="'+eee.Edit6.Text+'" WHERE id='+ID );
   // обновление таблицы данных главной формы
   Form1.TableGrid1.dbUpdate;
   eee.Close;
end;
Post's attachments

Attachment icon tesst.rar 4.96 kb, 10 downloads since 2021-09-21 

5 (edited by Alexandr 2021-09-21 15:57:03)

Re: [скрипт] запись в разные таблицы одной кнопкой с сохранением связи

Выводит во т такую ошибку...подскажите пожалуйста в чем может быть проблема?

Post's attachments

Attachment icon изображение_2021-09-21_185639.png 129.24 kb, 5 downloads since 2021-09-21 

Re: [скрипт] запись в разные таблицы одной кнопкой с сохранением связи

Где то лишнее равно?

Post's attachments

Attachment icon Без имени.png 58.06 kb, 4 downloads since 2021-09-21 

Re: [скрипт] запись в разные таблицы одной кнопкой с сохранением связи

Alexandr wrote:

Выводит во т такую ошибку...подскажите пожалуйста в чем может быть проблема?

здесь у Вас нет идентификатора записи

Re: [скрипт] запись в разные таблицы одной кнопкой с сохранением связи

Alexandr wrote:

Где то лишнее равно?

синтаксическая ошибка ( связана с "=")

Re: [скрипт] запись в разные таблицы одной кнопкой с сохранением связи

Alexandr wrote:

Где то лишнее равно?

Загрузите Ваш проект

Re: [скрипт] запись в разные таблицы одной кнопкой с сохранением связи

Вот пожалуйста

Post's attachments

Attachment icon Запись в 2 таблицы 1 кнопкой с другой формы.zip 339.38 kb, 11 downloads since 2021-09-21 

11 (edited by sibprogsistem 2021-09-21 16:29:54)

Re: [скрипт] запись в разные таблицы одной кнопкой с сохранением связи

Alexandr wrote:

Вот пожалуйста

procedure Form2_Button2_OnClick (Sender: TObject; var Cancel: boolean);
var
ID:string = SQLExecute('SELECT id_prodavec FROM client WHERE id='+Form1.TableGrid1.sqlValue); // получить идентификатор записи таблицы prodavec
begin
   // запись в таблицу client
   SQLExecute('UPDATE client SET name="'+Form2.Edit1.Text+'" WHERE id='+Form1.TableGrid1.sqlValue );
   // запись в таблицу prodavec
   SQLExecute('UPDATE prodavec SET nameS="'+Form2.Edit2.Text+'" WHERE id='+ID );
   // обновление таблицы данных главной формы
   Form1.TableGrid1.dbUpdate;
   Form1.TableGrid2.dbUpdate;
   Form2.Close;
end;

у Вас было 2-ве ошибки

SQLExecute('UPDATE prodavec SET nameS="'+Form2.Edit2.Text+'" WHERE id='+ID );  // тут у Вас было другое имя поля


   
ID:string = SQLExecute('SELECT id_prodavec FROM client WHERE id='+Form1.TableGrid1.sqlValue);
тут вы получали идентификатор из второй таблицы  а у вас главная первая таблица

Post's attachments

Attachment icon Запись в 2 таблицы 1 кнопкой с другой формы.rar 5.14 kb, 12 downloads since 2021-09-21 

Re: [скрипт] запись в разные таблицы одной кнопкой с сохранением связи

Спасибо Вам огромное!) Это мой мини черновой проект, я его сделал чтобы просто разобраться как оно должно работать, после чего по этому примеру буду делать уже основной проект...там таблиц и полей в них будет больше, но думаю тут все по аналогии заработает, дело техники