SQL::ConnectionGenerateDeleteStatement Method
Syntax
Arguments
- TableInfoSQL::TableInfo
SQL::TableInfo
- UseBatchQualifiersLogical
Default = .T. Changes the syntax of SQL INSERT, DELETE, and UPDATE statements.
- CriteriaSQL::UpdateWhereCriteria
SQL::UpdateWhereCriteria
- SourceTableInfoSQL::TableInfo
SQL::TableInfo
Returns
- StatementCharacter
A SQL DELETE statement.
Description
Generate a SQL Delete statement for the table passed in.
Discussion
The GenerateDeleteStatement() method generates a SQL statement that will delete a table in a database. When UseBatchQualifiers is explicitly set to .T., the appropriate column values are generated in the format :old. or :new. (All :old. for DELETE or WHERE clauses, all :new. for INSERT and a mixture for UPDATE statements). Note: If UseBatchQualifiers is true then field values will be generated as arguments prefaced with and 'old.' so a result set can be the source of the data.
Example
When UseBatchQualifiers is explicitly set to .T. .
DELETE FROM tablename WHERE column1 = :old.column1
If UseBatchQualifiers is set to .F., these function will generate the value entries as simple arguments (with one exception) so you can build an arguments collection up and execute the statement.
DELETE FROM tablename WHERE column1 = :column1
This example selects rows from a table, then uses the result set to delete the corresponding rows from another table.
dim conn as SQL::Connection
dim ti as SQL::TableInfo
dim rs as SQL::ResultSet
dim connstring as C
dim delete as C
dim select as C
connstring = "{A5API=Access, FileName='C:\Program Files\A5V8\MDBFiles\Alphasports.mdb', UserName='Admin'}"
select = "SELECT * FROM customer WHERE lastname >= 'm'"
IF .not. conn.Open(connstring) then
ui_msg_box("Error", conn.callresult.text)
end
END IF
conn.PortableSQLEnabled = .T.
IF .not. conn.execute(select)
ui_msg_box("Error", conn.callresult.text)
end
END IF
rs = conn.ResultSet
ti.Name = "AlphaSportsCustomerX"
delete = conn.GenerateDeleteStatement(ti)
IF .not. conn.ApplyData(delete, rs)
ui_msg_box("Error", conn.callresult.text)
END IF
conn.close()See Also