0

プライマリ チェックボックスの状態に応じて、PowerDesigner LDM/PDM の列の名前を変更したいと考えています。より具体的には、プライマリがチェックされている場合、列の名前を「oldname」から「id_oldname」に変更したいと思います。

「MSSQLSRV2008::Profile\Column\Custom Checks\Identity Seed and Increment validation」にあるようなカスタム チェック/自動修正スクリプトで可能だと思いますが、私は実際には VBScript の専門家ではありません :)

PowerDesigner 15 でそれを実現する簡単な方法はありますか?

4

3 に答える 3

1

解決策は非常に簡単です。残念ながら、PowerDesigner がイベント ハンドラーの実行に失敗する場合があるため (何らかの理由で)、完璧ではありません。以下の小さな vbscript で処理できるはずです。拡張モデル定義ファイルを作成し、プロジェクトに添付します。このスクリプトは、Table メタクラスの Validate イベント ハンドラーです (ただし、検証というよりは自動修正です)。

Function %Validate%(obj, ByRef message) 
   ' Implement your object validation rule on <parent> here 
   ' and return True in case of success, False otherwise with a message 
   dim col    
   for each col in obj.columns      
      if col.Primary = true then 
         if left(col.name,3) <> "id_" then 
            With col 
               .name = "id_" & .name 
               .SetNameAndCode .Name, "", True 
            End With 
         end if 
      else 
         if left(col.name,3) = "id_" then 
            with col 
               .name = right(.name, len(.name)-3) 
               .SetNameAndCode .Name, "", True 
            end with 
         end if 
      end if 
   next 
   %Validate% = True
End Function 

クレジットは、元のコードを提供した Richard Kier に贈られます。ありがとう、リチャード。

于 2010-03-03T10:23:42.337 に答える
0

VBScriptを記述して、オブジェクトモデルをトロールし、主キーのメンバーである列を探して名前を変更することができます。

または:

  • 列のリストを表示できます(パッケージまたはモデルを右クリックして、[リスト]-> [列]を選択します)

  • control-Uを押して(またはじょうごと鉛筆のアイコンをクリックして)、[列とフィルターのカスタマイズ]を表示します。

    • [列見出し]列で主キーエントリを見つけます。
    • フィルタ式で、式をTrueに設定します。
    • 主キーエントリのU列をチェックし、他の行でチェックされていないことを確認します。
    • 適用を押します。

これで、キーの一部であるすべての列が表示されます。同様に、非準拠の名前をワイルドカードでフィルタリングできます。複数の行を選択して、同時に名前を変更することもできます。

于 2010-02-24T15:55:06.707 に答える
0

これにはもっと簡単な方法があります。

  1. データベースに移動 - データベースの生成 - 生成された sql ファイルを保存します。
  2. テキスト エディタを使用して名前を変更するか、必要な編集を行います。
  3. データベースに移動 - データベースからモデルを更新 - 生成された sql ファイルを指定します。

ツールは、更新されたモデルを表示します。

于 2016-11-28T13:01:06.547 に答える