Delete Statement

OQL Delete corresponds to the Delete statement of SQL-92 as below:

var

  query : IDeleteQuery;

  subQuery : ISelectQuery;

begin

  subQuery := TSelectQuery.Create;

  subQuery

    .Select(NW.Customer.CustomerID)

    .From(NW.Customer)

    .Where( OQL.Criteria(NW.Customer.ContactTitle).EQ('Owner') );

 

  query := TDeleteQuery.Create;

  query

    .DeleteFrom(NW.Order)

    .Where( OQL.Criteria(NW.Order.CustomerID).In_(subQuery) );

end;

== Equal to the following SQL [MS SQL Server] ==

DELETE FROM

  [Orders]

WHERE

  [Orders].[CustomerID] IN

    (

      SELECT [Customers].[CustomerID]

      FROM [Customers]

      WHERE

        [Customers].[ContactTitle] = 'Owner'

    )

Related Topics

OQL.Delphi Tutorial