Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
Mobile Link サーバがアップロードされた挿入、更新、削除の処理を完了した直後に、任意の文を処理します。
次の表の説明では、SQL データ型を示します。Java または .NET でスクリプトを作成する場合、適切な対応するデータ型を使用します。 SQL データ型と Java データ型とSQL データ型と .NET データ型を参照してください。
SQL スクリプトでは、名前または疑問符を使用してイベントパラメータを指定できます。疑問符の使用は推奨されなくなりました。名前付きパラメータを使用することをおすすめします。1 つのスクリプト内で名前と疑問符を混在させることはできません。疑問符を使用する場合、パラメータは以下に示す順に指定する必要があり、後続のパラメータが指定されていない場合のみ省略可能です (たとえば、パラメータ 2 を使用する場合は、パラメータ 1 を使用してください)。名前付きパラメータを使用する場合は、パラメータの任意のサブセットを任意の順に指定できます。
s.username
VARCHAR(128)。Mobile Link ユーザ名。
1
なし。
Mobile Link サーバは、アップロードした情報を処理する最後の手順としてこのスクリプトを実行します。アップロード情報は 1 つのトランザクションで処理されます。このスクリプトは、このトランザクションで統計スクリプトの前に実行される最後のアクションです。
次の SQL Anywhere の SQL スクリプトは EndUpload ストアドプロシージャを呼び出します。
CALL ml_add_connection_script( 'ver1', 'end_upload', 'CALL EndUpload({ml s.username});' )
次の Mobile Link システムプロシージャコールは、スクリプトバージョン ver1 を同期するときに、endUploadConnection という Java メソッドを end_upload 接続イベント用のスクリプトとして登録します。
CALL ml_add_java_connection_script( 'ver1', 'end_upload', 'ExamplePackage.ExampleClass.endUploadConnection' )
次に示すのは、サンプルの Java メソッド endUploadConnection です。このメソッドは、データベースの操作を実行するメソッドを呼び出します。
public void endUploadConnection( String user ) { // Clean up new and old tables. Iterator two_iter = _tables_with_ops.iterator(); while( two_iter.hasNext() ) { TableInfo cur_table = (TableInfo)two_iter.next(); dumpTableOps( _sync_conn, cur_table ); } _tables_with_ops.clear(); }
次の Mobile Link システムプロシージャコールは、スクリプトバージョン ver1 を同期するときに、EndUpload という .NET メソッドを end_upload 接続イベント用のスクリプトとして登録します。
CALL ml_add_dnet_connection_script( 'ver1', 'end_upload', 'TestScripts.Test.EndUpload' )
次に示すのは、サンプルの .NET メソッド EndUpload です。
using iAnywhere.MobiLink.Script; namespace TestScripts { public class ExampleClass { DBConnectionContext _cc = null; ExampleClass( DBConnectionContext cc ) { _cc = cc; } public void EndUpload( string userName ) { DBConnection conn = _cc.GetConnection(); try { DBCommand cmd = conn.CreateCommand(); try { cmd.CommandText = "CALL EndUpload( ? )"; cmd.Prepare(); DBParameter parm = new DBParameter(); parm.DbType = SQLType.SQL_CHAR; parm.Value = userName; cmd.Parameters.Add( parm ); cmd.ExecuteNonQuery(); } finally { cmd.Close(); } } finally { conn.Close(); } } } }