Alexandr wrote:Есть форма с двумя таблицами и форма для заполнения этих таблиц. Добавление новых записей происходит по одной кнопке, удаление также по одной кнопке. Проблема с редактированием записей..при редактировании создается новая запись, а не изменяется существующая...
Вопрос: как сделать чтобы редактировало записи также по одной кнопке?
Изменить процедуру:
procedure Form2_Button1_OnClick (Sender: TObject; var Cancel: boolean);
var
maxID:string;
begin
if Form2.dbAction = 'NewRecord' then
begin
// запись в таблицу prodavec
SQLExecute('INSERT INTO prodavec (nameS) VALUES ("'+Form2.Edit2.Text+'")');
// получаем id последней записи в таблице prodavec
maxID:= SQLExecute ('select max(id) from prodavec');
// запись в таблицу client
SQLExecute('INSERT INTO client (name, id_prodavec) VALUES ("'+Form2.Edit1.Text+'", "'+maxID+'")');
end;
if Form2.dbAction = 'ShowRecord' then
begin
// запись в таблицу prodavec
SQLExecute('UPDATE prodavec SET nameS = "'+Form2.Edit2.Text+'" WHERE id = '+Form2.edtIDProdavec.Text );
// запись в таблицу client
SQLExecute('UPDATE client SET name = "'+Form2.Edit1.Text+'" WHERE id = '+IntToStr(Form1.TableGrid1.dbItemID) );
end;
Form1.TableGrid1.dbUpdate;
Form1.TableGrid2.dbUpdate;
Form2.Close;
end;
На форме добавить поле:
Вот только всё это зря вы затеяли ))) У вас есть две таблицы - клиенты и продавцы. И связь между ними. Почему такая структура данных? И зачем понадобилось двойное редактирование? На практике стараются так не делать, потому что реляционные СУБД плохо приспособлены для хранения наследования объектов. Могу предположить, что вы хотели бы иметь иерархию:
Клиенты
Покупатели
Продавцы
...
На практике Продавцы не отливаются от Покупателей или от Клиентов по набору признаков, поэтому не стоит для них создавать отдельные сущности (таблицы), оставьте одну таблицу Клиенты и, если вам очень надо как-то их отличать, добавьте признаки "Покупатель" и "Продавец". Именно признаки флаги, а не справочник "Тип клиента", так как на практике один и тот же клиент может быть как покупателем, так и продавцом. Но всё зависит от вашего ТЗ.
Визуальное программирование:
блог и
телеграм-канал.