みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
FileMaker Server 19.4
FileMaker Pro19.5 を使用しています。
MS SQL上に画像ファイルのバイナリデータが保存されています。
そのバイナリデータをFileMakerを使用し画像ファイルに変換することは可能でしょうか?
以下の内容を実施してみましたがダメでした。
1.FileMakerからMS SQLへODBC接続しバイナリデータをインポート
2.1でインポートしたデータに対しFileMakerのBase64Decodeを実行
3.結果として名称未定.datファイルがオブジェクトフィールドに返る
FileMakerにバイナリデータをインポートした時点で、MS SQLのバイナリデータとは別のものに変換されてインポートされます。
キャストを行いインポートなどをすればバイナリデータ→画像に変換可能でしょうか?
ご教授お願いいたします。
サーバ側でBASE64に変換しておかないとデコードしても意味ないですが
SQLServerにBASE64で保存するオプションがあるとか、関数があるとか、関数はないので定義するとか、よくわかりませんでした。
サーバ側でBASE64に変換しておかないとデコードしても意味ないですが
バイナリデータからBASE64に変換しないといけないということでかしこまりました。
こちらのサーバはSQL Serverということでよろしいでしょうか?
SQLServerにBASE64で保存するオプションがあるとか、関数があるとか、関数はないので定義するとか、よくわかりませんでした。
どう解釈をされたのかわからないのですが、保存オプションや関数のあるなしは書いていません。
端的にお伝えすると、SQL ServerのバイナリデータをFileMaker側で画像に変換する方法をお伺いしています。
手元に実験できる環境がないのでネットで軽く情報をあさりましたが、SQL Serverでのバイナリの保存状態(とFMでODBC経由でインポートした状態)がどうなってるのかわからなかった、という意味です。
MS SQLのバージョンは?
だいぶ前ですが、MySQLからは直接バイナリをやり取りできないのでサーバ側でエンコードしたテキストにしておく、という解決でした。
MSSQLも「保存オプションや関数」でテキストにしておければ、デコードすればいいので簡単ということなんですが...
FMのインポートしたオブジェクトフィールドのバイト数は元のデータと比べてどうなってますか?
2倍とか4倍ならHEXでエンコードされてる可能性もありますが...
himadanee様
回答いただきありがとうございます。
Microsoft SQL Server2019を使用しています。
FMのインポートしたオブジェクトフィールドのバイト数は元のデータと比べてどうなってますか?
2倍とか4倍ならHEXでエンコードされてる可能性もありますが...
バイト数はFMへインポートしたタイミングで減少しています。
一例ですが
MS SQL Server 1036バイトあるものが、
FMへインポートすると136バイトになっています。
結論として
FilleMakerでバイナリ→BASE64変換はできないため、
SQL Serverでバイナリ→BASE64に変換を行い、変換したものをFileMakerにインポートを行うようにします。
ご教授いただきありがとうございます。
Pages: 1
[ Generated in 0.006 seconds, 9 queries executed - Memory usage: 551.75 KiB (Peak: 579.45 KiB) ]