Еще раз добрый день!
Столкнулся с непонятной ситуацией.
В универсальном скрипте по нажатию кнопки сначала идет проверка на пустую ячейку, потом апдейт данных в базе данных все как в примере на обновление записи рецепта.
- Выделяем строку в таблице которую хотим изменить.
- Отображаем в соответствующих полях
-
! Ни чего не меняем.
Жмем кнопку на выполнение скрипта апдейта и у нас ошибка:
"#23000Cannot add or update a child row: a foreign key constraint fails (....... CONSTRAINT ........ FOREIGN KEY .......... REFERENCES .........ON UPDATE CASCADE)"
Берем скрипт из скады вставляем его в SQL, дополняем чем нужно для теста и выполняем. Ошибок нет.
Скрипт из скады:aQuery := 'UPDATE `vehicles` SET ' +
'`type_vehicles`=' + QuotedStr(edVehiclesType.AsStr) + ', ' +
'`type_chassis`=' + QuotedStr(edVehiclesTypeChassis.AsStr) + ', ' +
'`type_traffic`=' + QuotedStr(edTypeTraffic.AsStr) + ', ' +
'`type_support_wheel`=' + QuotedStr(edNumberInDepo.AsStr) + ', ' +
'`type_side_wheel`=' + QuotedStr(edNumberOnWay.AsStr) +
' WHERE `id_vehicles`=' + QuotedStr(edIDVehicles.AsStr);
{ Отправляем запрос на выполнение }
RunSQL(aQuery, nil, 19);
В скрипте типа "Выполнен SQL запрос":case DataSet.Tag of
...
19 :tblVehicles.RunSQL('SELECT * FROM `vehicles`', tsSaveFixRow);
end;
и скрипт в MySQL(значения взяты из самой таблицы без изменений):UPDATE vehicles SET type_vehicles = 'bottom',
type_chassis = 'mono rail',
type_traffic = 'cargo',
type_support_wheel = 'direct',
type_side_wheel = 'mixed'
WHERE id_vehicles = 'U4131';
При этом в таблицах в базе данных на всех Foreign Key стоит в Foreign Key Options -> On Update: -> CASCADE
Можете у себя проверить как то или посоветовать чего.
Жду вопросов и ответов.