olegy123 писал(а):tema писал(а):iddoljnost - это параметр, который хранится в Params и служит для связки двух таблиц.
Если тебе нужно связать две таблицы то не обязательно их связывать в ручную через Params.
в SQLQuery есть DataSource в который нужно указать DataSet первичной таблицы, и в SQL указать на ":первичный ключ"
Я именно так и делаю. И, когда так делаешь, в Params автоматически появляется параметр
":первичный ключ", который и используется в SQL. Но вот хотелось бы, чтобы этот параметр видел и InsertSQL и UpdateSQL.
А как Вы думали связывается всё, после указания DataSet первичной таблицы? Откуда он берёт этот ":первичный ключ" по-вашему? Из Params и берёт, предварительно создав его там.
olegy123 писал(а):tema писал(а):Сейчас это жуткий костыль в виде указания числа напрямую в тексте SQL, повешенный на событие SQLQuery2AfterScroll, поэтому я его и вынес отдельной строкой, чтобы:
Вешать на OnAfterScroll - работу с другими БД - это жеский Хак. И как правило неправильный..
С удовольствием выслушаю как сделать правильно! Для этого я и создал данную тему
olegy123 писал(а):tema писал(а):SQLQuery3.InsertSQL.Strings[4]:=SQLQuery2.FieldByName('iddoljnost').AsString;
Зачем это нужно?
В каком смысле "зачем"? Я же вначале темы написал зачем. Затем, чтобы сделать insert с определённым
doljnost_iddoljnost. Приходится это значение вставлять прямо в SQL вручную, что я и делаю: ставлю в 4ю строчку запроса число, которое беру из другого запроса SQLQuery2.FieldByName('iddoljnost').AsString