Hi Niel,
FlowHeater can’t synchronize deleted records between READ and WRITE! It’s possible to delete records on the READ and/or the WRITE with the help of the .NET Script Heater and an additional deleted flag field.
I’ve made a little example. In the ZIP archive a small access database (mdb) file are also included.
public object DoWork()
{
if (InValues.Length != 2)
{
throw new Exception("2 input parameter expected");
}
// don't execute SQL delete statements in test mode!
if (AdapterWrite.OnlyTest == false)
{
// get field value "ID" = first input parameter
int iID = (int)InValues[0].GetInt();
// get field value "DeleteFlag" = second input parameter
bool bDelete = (bool)InValues[1].GetBoolean();
if (bDelete)
{
string sql1 = "delete from Your_Table_on_READ where id = " + iID.ToString("0");
string sql2 = "delete from Your_Table_on_WRITE where id = " + iID.ToString("0");
// Execute the delete SQL statement on the READ database
AdapterRead.Execute(sql1);
// Execute the delete SQL statement on the WRITE database
AdapterWrite.Execute(sql2);
}
}
// just returning the first input parameter = field ID
return InValues[0].GetValue();
}
The script in the .NET Script Heater gets the Primary Key and the deleted Flag field. In case of the deleted flag is set to true the script execute a custom SQL delete statement on both sides.
CAUTION: Please take care when making use of this method. If an incorrect SQL WHERE condition is entered here you could inadvertently delete the wrong database rows or even the entire table contents!
Attachment delete_records.zip not found
Best wishes
Robert Stark
Did this answer your question? We would be grateful if you provide a brief comment as feedback. It may also help others who may have encountered a similar problem.