DBMotoでのスクリプトの書き方①


本ブログでもいくつか紹介していますが、DBMotoではスクリプトを使ってより高度なレプリケーションや設定の効率化などを行えます。このスクリプトに関して、改めてシリーズで基本的な使い方をご紹介します。

スクリプトの種類

スクリプトは記述する場所により、以下の3種類があります。

  • グローバルスクリプト

関数のグローバルクラスを定義する共有モジュールです。レプリケーションや関数スクリプトで呼び出す、共通の関数などを定義できます。

  • レプリケーションスクリプト

レプリケーションに発生した特定のイベントに対して実行する処理をスクリプトで定義できます。

  • 関数スクリプト

カラムのマッピングを行う際の値の変換等を行う際のスクリプトを記述できます。

スクリプト言語の変更

DBMotoはC#またはVB .NET、いずれかでのスクリプトをサポートしており、デフォルトはC#です。使用する言語はグローバルスクリプトで指定し、ここで設定した言語をレプリケーション、関数スクリプトでも使用します。

Visual Basic .NETを使用する場合の参考情報

Visual Basic 6.0以前(以下VB)とVisual Basic .NET以降(以下VB.NET)には類似点も多くありますが、異なる点も多いことに注意してください。

https://docs.microsoft.com/ja-jp/dotnet/visual-basic/

  • VBにおけるIsNullの代わりにIsNothingを使用します。
  • 引数がない場合でも、関数には常に括弧を使用します。
  • 型付きのパラメータを常に使用します。関数の戻り値の型を定義します。
  • グローバルスクリプトで、静的関数として定義するために、キーワード「Shared」を使用してすべてのカスタムプロシージャ(SubおよびFunction)を定義します。
  • 実行する前に必ずスクリプトをコンパイルしてください。 VB.NETコンパイラは、古いVBAコンパイラよりも強力であり、より早い段階でエラーを見つけることができます。
  • DBMotoがレコードの列に番号を付ける方法は、ソースまたはターゲットの列の順序と必ずしも同じではありません。たとえば、一部のフィールドがマップされていない場合、それらはRecordBeforeまたはRecordAfter構造から除外されるため、列は順序番号と数値的に一致しません。

関連したトピックス

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください