2016-08-05 13 views
1

solidworks EPDM APIからカードのリストの値を取得する方法はありますか?そうでなければ、私の唯一の方法はデータベースを要求することです。この場合、APIからデータベース接続文字列を取得する方法はありますか? ありがとうございますsolidworks EPDM APIカードのリストを取得

答えて

0

残念ながら、これらの質問の両方への答えはいいえです。 IEdmCardListオブジェクト、またはAPIから接続文字列を取得する方法はありません。

私が行ったことは、IEdmObject5から継承する自分のIEdmCardListオブジェクトを作成することです。その後、プロジェクトにデータベースコードを入れる代わりに、オブジェクトを作成してオブジェクトとして使用できます。私はIEdmDictionary5を使用して接続文字列(データベース上の読み取り専用ユーザー)を格納しました。これは安全ではありませんが、安全な方法ではありません。

SOLIDWORKSが提供するAPIサンプルについては、これにも注意してください。ほとんどの場合、単純なSQLインジェクションが必要です。

0

2018年の新機能で、APIを使用してカードリストデータを取得する方法が追加されました。このコードで行うことができます:

  String selectedFile = @"C:\path\to\file.sldprt"; 
      String selectedVariable = "Variable Name"; 
      String selectedVault = "My Vault Name"; 
      vault = new EdmVault5(); 
      vault.LoginAuto(selectedVault, 0); 
      if (vault.IsLoggedIn) { 
       IEdmFile5 file = vault.GetFileFromPath(selectedFile, out IEdmFolder5 folder); 
       IEdmCard5 card = folder.GetCard(Path.GetExtension(selectedFile).Substring(1)); 
       Object variableName = selectedVariable; 
       IEdmCardControl7 cardControl = (IEdmCardControl7)card.GetControl(card.GetControlID(ref variableName)); 
       if (cardControl.GetControlVariableList(file.ID, out String[] cardListStrings)) { 
        foreach (String cardListItem in cardListStrings) { 
         // do something with this string 
        } 
       } 
      } 
関連する問題