Processes statements related to a specific table just before fetching a list of rows to be deleted from the specified table in the remote database.
In the following table, the description provides the SQL data type. If you are writing your script in Java or .NET, you should use the appropriate corresponding data type. See SQL-Java data types and SQL-.NET data types.
In SQL scripts, you can specify event parameters by name or with a question mark, but you cannot mix names and question marks within a script. If you use question marks, the parameters must be in the order shown below and are optional only if no subsequent parameters are specified (for example, you must use parameter 1 if you want to use parameter 2). If you use named parameters, you can specify any subset of the parameters in any order.
Parameter name for SQL scripts | Description | Order |
---|---|---|
s.last_table_download | TIMESTAMP. The last download time for the table. | 1 |
s.remote_id | VARCHAR(128). The MobiLink remote ID. You can only reference the remote ID if you are using named parameters. | Not applicable |
s.username | VARCHAR (128). The MobiLink user name. | 2 |
s.table | VARCHAR (128). The table name. | 3 |
None.
This event is executed immediately before fetching a list of rows to be deleted from the named table in the remote database.
You can have one begin_download_deletes script for each table in the remote database.
To minimize the amount of data on remotes, you can use this event to flag data that is deleted when the download_delete_cursor is executed. The following example flags for deletion sales leads from the remote device that are over 10 weeks old. The example can be used on a SQL Anywhere 11 database.
The following call to a MobiLink system procedure assigns the BeginDownloadDeletes stored procedure to the begin_download_deletes event when synchronizing the script version ver1.
CALL ml_add_table_script ( 'ver1', 'Leads', 'begin_download_deletes', 'CALL BeginDownloadDeletes ( {ml s.last_table_download}, {ml s.username}, {ml s.table})' ); |
The following SQL statement creates the BeginDownloadDeletes stored procedure.
CREATE PROCEDURE BeginDownloadDeletes( LastDownload timestamp, MLUser varchar(128), TableName varchar(128) ) BEGIN execute immediate 'update ' || TableName || ' set delete_flag = 1 where days(creation_time, CURRENT DATE) > 70 and Owner = ' || MLUser; END; |
The following call to a MobiLink system procedure registers a Java method called beginDownloadDeletes as the script for the begin_download_deletes table event when synchronizing the script version ver1.
CALL ml_add_java_table_script( 'ver1', 'table1', 'begin_download_deletes', 'ExamplePackage.ExampleClass.beginDownloadDeletes' ) |
The sample Java method beginDownloadDeletes saves the name of the current table for use in a later method call.
public String beginDownloadDeletes ( Timestamp ts, String user, String table ) { _curTable = table; return ( null ); } |
The following call to a MobiLink system procedure registers a .NET method called BeginDownloadDeletes as the script for the begin_download_deletes table event when synchronizing the script version ver1 and the table table1.
CALL ml_add_dnet_table_script ( 'ver1', 'table1', 'begin_download_deletes', 'TestScripts.Test.BeginDownloadDeletes' ) |
The sample .NET method BeginDownloadDeletes saves the name of the current table for use in a later method call.
public string BeginDownloadDeletes( DateTime timestamp, string user, string table ) { _curTable = table; return ( null ); } |
Discuss this page in DocCommentXchange. Send feedback about this page using email. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |