2 返信 最新の回答 日時: May 30, 2016 12:35 AM ユーザー:chiba

    ODBCでオブジェクトフィールドの値を取得したい

    chiba

      お世話になります。

       

      FileMaker Server 14 から ODBCでオブジェクトフィールド(画像)の内容を取得したく、

      SQLリファレンスガイドにあるような構成で試していますがうまくいきません。

       

      VB.NetでFMSにODBC接続して

       SELECT GetAs(""会社パンフレット"", DEFAULT) FROM ""営業データ""

      を実行するとNullが返ってきます。

      オブジェクトフォールドにはJPEG画像を登録しているので

       SELECT GetAs(""会社パンフレット"", 'JPEG') FROM ""営業データ""

      としましたが結果はNullでした。

       

       SELECT CAST( ""会社パンフレット"" AS VARCHAR) FROM ""営業データ""

      とすると、ファイル名(xxxx.jpg)が取得できます。

       

      オブジェクトフィールドには、

      ・FileMaker Goから撮影して登録

      ・FileMaker Proで挿入-ピクチャで登録

      など何パターンか試しましたが、いずれもNullが返ってきました。

       

      環境は

      FileMaker Server 14 / Windows Server 2012

      FileMaker Pro 14 / Windows 10

      FileMaker Go 14 / iOS 9.3 iPad mini

      です。

       

      ODBC経由で画像の取得が可能か不可能か、

      可能な場合、なにかコツがあるのであればアドバイス頂きたいです。

      よろしくお願い致します。

        • 1. Re: ODBCでオブジェクトフィールドの値を取得したい
          user14047
          SELECT GetAs("会社パンフレット", DEFAUL) FROM "営業データ"
          

          (SQL リファレンスガイドでは、DEFAULT がシングルクオートされていますが、クオートすると The string "DEFAULT" is not a valid stream name. なんてエラーが返ってきてしまいますね。)

           

          ファイルタイプを指定すると、そのファイルタイプ以外は取得できないので、DEFAULT オプションを指定してしまうのが一番楽な気がしますが、それで取得できいないとなると、念のため 'FILE' (シングルクオート付き)で試してみて、それでもダメだったら Base64Encode 関数でエンコードしたテキストを計算フィールドでもたせて、その値を ODBC経由で取得して受け取り側でデコードしてみてはいかがでしょうか?

          • 2. Re: ODBCでオブジェクトフィールドの値を取得したい
            chiba

            コメントありがとうございます。

             

            GetAs関数で、'FILE'を指定しても結果は変わりませんでしたが、

            計算フィールドの案で、うまく実現できました。

             

            ありがとうございました。