Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
同期処理の最後に文を処理します。
次の表の説明では、SQL データ型を示します。Java または .NET でスクリプトを作成する場合、適切な対応するデータ型を使用する必要があります。 SQL データ型と Java データ型とSQL データ型と .NET データ型を参照してください。
SQL スクリプトでは、名前または疑問符を使用してイベントパラメーターを指定できます。疑問符の使用は推奨されなくなりました。名前付きパラメーターを使用することをおすすめします。1 つのスクリプト内で名前と疑問符を混在させることはできません。疑問符を使用する場合、パラメーターは以下に示す順に指定する必要があり、後続のパラメーターが指定されていない場合のみ省略可能です (たとえば、パラメーター 2 を使用する場合は、パラメーター 1 を使用してください)。名前付きパラメーターを使用する場合は、パラメーターの任意のサブセットを任意の順に指定できます。
s.username
VARCHAR(128)。Mobile Link ユーザー名。
1
s.synchronization_ok
INTEGER。この値は、同期が成功すると 1 に、失敗すると 0 になります。
2
なし。
同期の完了後、Mobile Link サーバーはこのスクリプトを実行します。
このスクリプトは、ダウンロードトランザクションの後に、別のトランザクションで実行されます。ダウンロード確認が要求されていない場合、リモートデータベースは end_synchronization スクリプトが開始または完了する前に同期を終了し、接続を切断することがあります。
end_synchronization スクリプトは統計値の管理に便利です。これは、begin_synchronization スクリプトを呼び出した場合、前のトランザクションでエラーが発生しても end_synchronization スクリプトが呼び出されるので、アップロードトランザクションがロールバックされている間は、統計値が維持されるためです。
次の SQL スクリプトは、同期試行の終了時刻と同期の成功または失敗を記録するシステムプロシージャーを呼び出します。これは SQL Anywhere 統合データベース用の構文です。
CALL ml_add_connection_script( 'ver1', 'end_synchronization', 'CALL RecordEndOfSyncAttempt( {ml s.username}, {ml s.synchronization_ok} )' )
次の Mobile Link システムプロシージャーコールは、スクリプトバージョン ver1 を同期するときに、endSynchronizationConnection という Java メソッドを end_synchronization イベント用のスクリプトとして登録します。
CALL ml_add_java_connection_script( 'ver1', 'end_synchronization', 'ExamplePackage.ExampleClass.endSynchronizationConnection' )
次に示すのは、サンプルの Java メソッド endSynchronizationConnection です。このメソッドは JDBC 接続を使用して更新を実行します。これは SQL Anywhere 統合データベース用の構文です。
public String endSynchronizationConnection( String user ) throws java.sql.SQLException { execUpdate( _syncConn, "UPDATE sync_count set count = count + 1 where user_id = '" + user + "' " ); return ( null ); }
次の Mobile Link システムプロシージャーコールは、スクリプトバージョン ver1 を同期するときに、EndSync という .NET メソッドを end_synchronization 接続イベント用のスクリプトとして登録します。
CALL ml_add_dnet_connection_script( 'ver1', 'end_synchronization', 'TestScripts.Test.EndSync' )
次に示すのは、サンプルの .NET メソッド EndSync です。このメソッドは、テーブル sync_count を更新します。これは SQL Anywhere 統合データベース用の構文です。
namespace TestScripts { public class Test { string _curUser = null; public string EndSync( string user ) { return( "UPDATE sync_count set count = count + 1 where user_id = '" + user + "' "); return ( null ); }}}