Так получилось, что с периодичностью в два года я пишу о получении в программе значения первичного ключа, который сгенерирован СУБД при добавлении в таблицу новой строки. В 2019-м я писал об этом для UniDAC, потом в 2021-м для FireDAC. Разработчики Delphi 12 предоставили повод написать об этом и в 2023-м. В FireDAC для MS SQL Server, по аналогии с PostgreSQL и Firebird/InterBase, добавлена возможность получения OUTPUT-значения после DML операции с помощью параметров.
В FireDAC Delphi 12 для MS SQL Server добавили поддержку экранированного фигурными скобками псевдопараметра "INTO". Теперь у FireDAC для MS SQL Server тоже есть два способа получения значений после DML операции. Первый – с использованием метода Open и полей TFDQuery:
В FireDAC Delphi 12 для MS SQL Server добавили поддержку экранированного фигурными скобками псевдопараметра "INTO". Теперь у FireDAC для MS SQL Server тоже есть два способа получения значений после DML операции. Первый – с использованием метода Open и полей TFDQuery:
q := TFDQuery.Create(nil); q.Connection := dbMS; q.SQL.Text := 'insert into test(t) output INSERTED.ID values (''test'')'; q.Open; Writeln(q.Fields[0].FieldName, ' ', q.Fields[0].AsString);Второй – с использованием метода ExecSQL/Execute и параметров TFDQuery:
q := TFDQuery.Create(nil); q.Connection := dbMS; q.SQL.Text := 'insert into test(t) output INSERTED.ID {into :id} values (''test'')'; q.Params[0].ParamType := ptOutput; q.Params[0].DataType := ftInteger; q.ExecSQL; Writeln(q.Params[0].Name, ' ', q.Params[0].AsString);
Чорны кашак, у тебя инсайдерские связи с разрабами из Embarcadero?)
ОтветитьУдалитьНет, информация получена из "открытых источников". К сожаленью, Embarcadero меня никогда не замечала :( Даже во времена моей активной деятельности на благо сообщества Delphi. Я бы тогда мог себя назвать "евангелистом Delphi". Хотя я им являюсь и сейчас :) Единственный из лиц приближенных к авторам Delphi с кем я когда-то общался - это был Сергей Орлик из московского Borland. Но это было очень давно, задолго до Embarcadero.
УдалитьНе замечала? Даже за DelphiPlus не наградили пожизненной лицензией на Delphi? Тебе надо было у них на MVP подаваться )))
УдалитьEmbarcadero одна из самых жадных контор - они ничего не дадут. К тому же последние годы продвижение Delphi на российском рынке их не очень интересовало. Вся их реклама у нас - это 2-3 нудных русскоязычных вебинаров в год. А после санкций за развязанную войну мы им тем более не нужны
Удалить>мы им тем более не нужны
ОтветитьУдалитьНу это не совсем правда. Уже с начала 2023 года уже можно официально лицензии покупать или продлять, просто это не афишировалось. А еще если оформляешь бесплатную годовую версию, то звонит менеджер, интересуется целями, конторой, возможностями приобретения полной лицензии...