4Dオブジェクトフィールドは、バイナリコンテンツとして保存される永続的なデータベースフィールドタイプです。以前は、ODBCドライバによるこのタイプのフィールドの読み取りは不可能でした。 今日までは。
以前は、オブジェクトフィールドを読もうとすると、エラーが返されました。このため、単純なSelect * from myTable リクエストを完了することができず、テーブルの内容を参照したいだけのユーザーにとっては不満が残るものでした。
良い知らせです。SQLエンジンが アップデート され、4Dオブジェクトフィールドの読み込みが可能になりました。
アップデートされたSQLエンジン
アップデートされたSQLエンジンとODBCドライバーでは、オブジェクトフィールドを読み込む際にエラーを返すのではなく、フィールドがバイナリコンテンツとして返されるようになりました。
4DオブジェクトフィールドのSQL CAST関数
オブジェクト・フィールドの内容を参照するために、SQL CAST関数が拡張され、JSON表現を返すようになりました(ただし、オブジェクトをJSON形式で表示できる場合に限ります)。
これで、Select * from myTableを使って、4D、Excel、Crystal Reports から、データベースの全てのコンテンツをチェックすることができます。
例
以下のようなクエリを実行することができます。
SELECT Persons.name, CAST (Persons.address as VARCHAR) FROM Persons
そして、これがMS Queryを使った結果です。
4D で SQL を使ってオブジェクトフィールドを読み込む
C_OBJECT 変数のオブジェクトフィールドを読み込むこともできます。
例
C_OBJECT($obj)
Begin SQL
SELECT addressFROM PersonsWHERE name = 'Smith'into:$obj;
End SQL