IDENTITY_INSERT

Discussion of open issues, suggestions and bugs regarding UniDAC (Universal Data Access Components) for Delphi, C++Builder, Lazarus (and FPC)
Post Reply
Tomasz Andrzejewski
Posts: 14
Joined: Fri 30 Dec 2011 15:11

IDENTITY_INSERT

Post by Tomasz Andrzejewski » Tue 28 Aug 2012 15:06

Hello,

Is there any option that allow me to set identity column value this way:

Code: Select all

var
  FQuery: TUniQuery
begin
  FQuery :=  TUniQuery.Create(Self);
  FQuery.SQL.Add('SELECT * FROM MyTable WHERE 1=0');
  FQuery.Connection = ...;
  FQuery.Open;
  FQuery.Append;
  FQuery.FieldByName('Id').ReadOnly := False;

  FQuery.FieldByName('Id').Value = 10;
  FQuery.FieldByName('Name').Value = 'AAAAAA';
  
  FQuery.Post;
Where:
Id - identity column
Name - additional fields.

I want to use FieldByName and TUniQuery to add record with identity specified.
I get error that Identity_insert is not set for table e.g test.

Tomasz Andrzejewski
Posts: 14
Joined: Fri 30 Dec 2011 15:11

Re: IDENTITY_INSERT

Post by Tomasz Andrzejewski » Wed 29 Aug 2012 07:16

solved.

Code: Select all

var
  FIdentityQuery: TUniQuery;
begin
  FIdentityQuery := TUniQuery.Create(Self).
  FIdentityQuery.SQL.Add('SET IDENTITY_INSERT [TableName] ON');
  FIdentityQuery.Connection := ...
  FIdentityQuery.Execute();

  // there you can go with normal post method
  FDataQuery.Post;
  RecordId := FDataQuery.FieldByName('TableId').Value;
end;

Post Reply