4D-JUG
Would you like to react to this message? Create an account in a few clicks or log in to continue.

ORDAってバージョン違いだと接続できないんですね

2 posters

Go down

ORDAってバージョン違いだと接続できないんですね Empty ORDAってバージョン違いだと接続できないんですね

投稿 by hosaka 2021-07-19, 11:21 pm

てっきりできるものだと思ってたんですが。できませんでした。 Shocked
hosaka
hosaka

投稿数 : 241
登録日 : 2016/07/04
所在地 : 大阪

トップに戻る Go down

ORDAってバージョン違いだと接続できないんですね Empty Re: ORDAってバージョン違いだと接続できないんですね

投稿 by miyako 2021-07-20, 8:36 am

Open datastoreコマンドでしょうか。

https://doc.4d.com/4Dv18/4D/18.4/Open-datastore.301-5234036.ja.html

差し支えなければ

  • 使用したバージョン(サーバーおよびクライアント)
  • 使用したコマンドとパラメーター

をお知らせいただけないでしょうか。

miyako

投稿数 : 480
登録日 : 2016/07/05

トップに戻る Go down

ORDAってバージョン違いだと接続できないんですね Empty Re: ORDAってバージョン違いだと接続できないんですね

投稿 by hosaka 2021-07-20, 10:48 am

miyako wrote:Open datastoreコマンドでしょうか。

https://doc.4d.com/4Dv18/4D/18.4/Open-datastore.301-5234036.ja.html

差し支えなければ

  • 使用したバージョン(サーバーおよびクライアント)
  • 使用したコマンドとパラメーター

をお知らせいただけないでしょうか。
そうです。本来はつながるんでしょうか。
4Dフォーマットのインポート/エクスポート機能を使って移行しようとしたのですがオブジェクトフィールドが含まれるテーブルの場合いろいろ怪しいのでORDAで取り込むことにしたのですが

状況としてはv18のサーバーに対して、v19で接続しました。エラーが出たのでダメなんだと思ってv18で接続し直したら素直に繋がったのでできないんだとばかり思ってました。
ストラクチャは全て同じものです。違いがあるとすればv18はバイナリーモードでv19はプロジェクトモードです。
処理コードは一切手をつけていないので同じメソッドです。
hosaka
hosaka

投稿数 : 241
登録日 : 2016/07/04
所在地 : 大阪

トップに戻る Go down

ORDAってバージョン違いだと接続できないんですね Empty Re: ORDAってバージョン違いだと接続できないんですね

投稿 by miyako 2021-07-20, 5:31 pm

返答いただきありがとうございました。

v19がリリースされ,Open datastoreをサポートするLTSバージョンが複数になった今,SQL・SOAP・4D Openがそうだったように,ORDAもバージョンを超えた通信にORDAを使用したいというのは,もっともな話だと思います。開発部に問い合わせていますので,少々,お待ちください。

データストアについていえば,.startRequestLog()でログが記録できるので,何かの手がかりが得られるかもしれません(v18とv19では違うAPIが呼ばれているなど)。

あるいは,このページで言及されている.makeSelectionsAlterable()で18 R4以前の振る舞い(デフォルトで共有エンティティセレクションを返さない)にすれば良いのでしょうか・・・接続ができれば,ですが。

ちなみにこのコマンドは一方通行(昔に戻す)のもので,原則的に一度しか使用できないものですが,値「43(53という資料もあり)」で強引にリセットできる,という資料がありました。ドキュメントサイトに公開されていないメンバー関数なので,この点についても確認中です。

miyako

投稿数 : 480
登録日 : 2016/07/05

トップに戻る Go down

ORDAってバージョン違いだと接続できないんですね Empty Re: ORDAってバージョン違いだと接続できないんですね

投稿 by miyako 2021-07-28, 4:05 am

https://doc.4d.com/4Dv19/4D/19/dataStoremakeSelectionsAlterable.305-5392032.ja.html

v19のORDAにおいて「以前の振る舞いを即座に取り戻す」コマンドは,ドキュメントのリンクが間違っていただけでした。

別バージョン同士のORDA接続についてですが「クライアント/サーバーに準じるものなので,原則的にサポートされていない」という回答でした。

miyako

投稿数 : 480
登録日 : 2016/07/05

トップに戻る Go down

ORDAってバージョン違いだと接続できないんですね Empty Re: ORDAってバージョン違いだと接続できないんですね

投稿 by hosaka 2021-07-28, 11:24 am

miyako wrote:https://doc.4d.com/4Dv19/4D/19/dataStoremakeSelectionsAlterable.305-5392032.ja.html

v19のORDAにおいて「以前の振る舞いを即座に取り戻す」コマンドは,ドキュメントのリンクが間違っていただけでした。

別バージョン同士のORDA接続についてですが「クライアント/サーバーに準じるものなので,原則的にサポートされていない」という回答でした。
4D Openは出来ていたのにしかたないですね。技術的な問題ではなくライセンス的な問題という事ですね。
SQLでするしかない様ですがSQLは日本語のテーブル名・フィールド名が使えないんですよね〜
hosaka
hosaka

投稿数 : 241
登録日 : 2016/07/04
所在地 : 大阪

トップに戻る Go down

ORDAってバージョン違いだと接続できないんですね Empty Re: ORDAってバージョン違いだと接続できないんですね

投稿 by miyako 2021-09-02, 9:48 am

> SQLは日本語のテーブル名・フィールド名が使えない

* 日本語名のテーブル/フィールドにASCII名のビューを定義する

* 日本語名のテーブル/フィールドをエスケープする

のはいかがでしょうか。

miyako

投稿数 : 480
登録日 : 2016/07/05

トップに戻る Go down

ORDAってバージョン違いだと接続できないんですね Empty Re: ORDAってバージョン違いだと接続できないんですね

投稿 by hosaka 2021-09-02, 11:07 am

miyako wrote:> SQLは日本語のテーブル名・フィールド名が使えない

* 日本語名のテーブル/フィールドにASCII名のビューを定義する

* 日本語名のテーブル/フィールドをエスケープする

のはいかがでしょうか。
意図としては普通に日本語つかえないかなと言う事なのですが、

ビューの定義はこれでよいでしょうか
Code:

Begin SQL
 CREATE VIEW event AS SELECT * FROM イベント;
End SQL

テーブル名が日本語で'イベント'なのですがエラーがでます。
エスケープの方なのですがこれは[]で括ると言う事でしょうか。これもエラーがでます。
hosaka
hosaka

投稿数 : 241
登録日 : 2016/07/04
所在地 : 大阪

トップに戻る Go down

ORDAってバージョン違いだと接続できないんですね Empty Re: ORDAってバージョン違いだと接続できないんですね

投稿 by miyako 2021-09-02, 11:10 am

Begin SQL
CREATE VIEW event AS SELECT * FROM [イベント];
End SQL

はいかがでしょうか

miyako

投稿数 : 480
登録日 : 2016/07/05

トップに戻る Go down

ORDAってバージョン違いだと接続できないんですね Empty Re: ORDAってバージョン違いだと接続できないんですね

投稿 by hosaka 2021-09-02, 11:12 am

miyako wrote:Begin SQL
CREATE VIEW event AS SELECT * FROM [イベント];
End SQL

はいかがでしょうか
普通にエラーがでます。もしかして宮古さんのところではエラーが出ていない。のでしょうか。
hosaka
hosaka

投稿数 : 241
登録日 : 2016/07/04
所在地 : 大阪

トップに戻る Go down

ORDAってバージョン違いだと接続できないんですね Empty Re: ORDAってバージョン違いだと接続できないんですね

投稿 by hosaka 2021-09-02, 11:16 am

すみません。エラーの原因は別でしたフィールドにオブジェクト型があったのでそちらでエラーになっていたみたいです。
と言うことは日本語名はエスケープするとビューを作成しなくてもアクセス可能なのでしょうか。
もう少しテストしてみます。
hosaka
hosaka

投稿数 : 241
登録日 : 2016/07/04
所在地 : 大阪

トップに戻る Go down

ORDAってバージョン違いだと接続できないんですね Empty Re: ORDAってバージョン違いだと接続できないんですね

投稿 by hosaka 2021-09-02, 11:30 am

うまく行きました。
エスケープの仕方はSQLエンジンによって違うんですね。
前にテストした時のものがのこっていたので確認してみるとダブルクォーテーションやバッククォートで括ってました。
ORDAってバージョン違いだと接続できないんですね Aacaoa15
エスケープしたところの表示ですがこれで正解でしょうか。
hosaka
hosaka

投稿数 : 241
登録日 : 2016/07/04
所在地 : 大阪

トップに戻る Go down

ORDAってバージョン違いだと接続できないんですね Empty Re: ORDAってバージョン違いだと接続できないんですね

投稿 by hosaka 2021-09-02, 11:43 am

フィールドのオブジェクト型でエラーになった件なのですが、
確か新しいバージョンではオブジェクト型に対応していたと思うのですが
この記述でオブジェクト型でエラーになるのは正しくないのではないでしょうか。

Code:
Begin SQL
CREATE VIEW event AS SELECT * FROM [イベント];
End SQL
hosaka
hosaka

投稿数 : 241
登録日 : 2016/07/04
所在地 : 大阪

トップに戻る Go down

ORDAってバージョン違いだと接続できないんですね Empty Re: ORDAってバージョン違いだと接続できないんですね

投稿 by miyako 2021-09-02, 11:56 am

4D SQLでテーブルをエスケープすると,通常と同じ[テーブル]になりますが,気をつけないといけないのはフィールドで

[フィールド]

または

[テーブル].[フィールド]

となります。

miyako

投稿数 : 480
登録日 : 2016/07/05

トップに戻る Go down

ORDAってバージョン違いだと接続できないんですね Empty Re: ORDAってバージョン違いだと接続できないんですね

投稿 by hosaka 2021-09-02, 11:58 am

miyako wrote:4D SQLでテーブルをエスケープすると,通常と同じ[テーブル]になりますが,気をつけないといけないのはフィールドで

[フィールド]

または

[テーブル].[フィールド]

となります。
なるほど。参考になります。
hosaka
hosaka

投稿数 : 241
登録日 : 2016/07/04
所在地 : 大阪

トップに戻る Go down

ORDAってバージョン違いだと接続できないんですね Empty Re: ORDAってバージョン違いだと接続できないんですね

投稿 by miyako 2021-09-02, 12:15 pm

SQLのオブジェクト型フィールド対応ですが,以下のように計画があります。

第一段階

値を読む(v17 R5)

Code:
SELECT * FROM Table


  • オブジェクト型フィールドの存在で上記が阻止されないように
  • ODBC Driver経由でオブジェクト型フィールドを読む場合,VARCHARにCASTできるように
  • 内部SQLでオブジェクト型フィールドを読む場合,C_OBJECT/ARRAY OBJECT/オブジェクト型フィールドで受け取れるように
  • システムテーブルでオブジェクト型フィールドが参照できるように


CASTはJSON文字列を返す
オブジェクト内のピクチャは[object Picture]という文字列
再帰的な参照は[circular]という文字列

例:

Code:
C_OBJECT($object)
C_TEXT($objectAsText)
ARRAY OBJECT($arrayObj;0)
ARRAY OBJECT($arrayObj2;0)

Begin SQL

SELECT objField FROM TableWithObject WHERE ID = 2 into :$object;
select objField, objField2 FROM TableWithObject INTO :$arrayObj, :$arrayObj2;
SELECT CAST (objField as VARCHAR) FROM TableWithObject WHERE ID = 2 into :$objectAsText;

End SQL

クエリができるわけではない


  • 無理な例


Code:
SELECT objField.textProperty FROM Table WHERE ID = 2 into :vText

第二段階

バージョン未定


  • SQLでオブジェクト型フィールドを作成できるように


第三段階

バージョン未定


  • SQLでオブジェクト型フィールドを更新できるように

miyako

投稿数 : 480
登録日 : 2016/07/05

トップに戻る Go down

ORDAってバージョン違いだと接続できないんですね Empty Re: ORDAってバージョン違いだと接続できないんですね

投稿 by hosaka 2021-09-02, 12:18 pm

日本語の4Dのテーブル/フィールドがアクセスできる事がわかったので
ODBC経由でExcelから参照しようとしたのですが、テーブルは見えているのですがフィールドが見えません。
エラーになります。なにか設定が必要でしょうか。
hosaka
hosaka

投稿数 : 241
登録日 : 2016/07/04
所在地 : 大阪

トップに戻る Go down

ORDAってバージョン違いだと接続できないんですね Empty Re: ORDAってバージョン違いだと接続できないんですね

投稿 by hosaka 2021-09-02, 12:39 pm

hosaka wrote:日本語の4Dのテーブル/フィールドがアクセスできる事がわかったので
ODBC経由でExcelから参照しようとしたのですが、テーブルは見えているのですがフィールドが見えません。
エラーになります。なにか設定が必要でしょうか。
テーブル/フィールドが英語でもアクセスできないですね。ODBCのおCompatibiltyのMSAccessにチェックをいれてもダメみたいです。
これはODBCドライバ側の問題でしょうか。
hosaka
hosaka

投稿数 : 241
登録日 : 2016/07/04
所在地 : 大阪

トップに戻る Go down

ORDAってバージョン違いだと接続できないんですね Empty Re: ORDAってバージョン違いだと接続できないんですね

投稿 by miyako 2021-09-02, 1:02 pm

ODBCドライバーのバージョンはv19またはv18でしょうか(v19でv18に接続することができます)。

オブジェクト型フィールドはバイナリデータとしてドライバーに渡されます。

ORDAってバージョン違いだと接続できないんですね 131779897-c719fb9e-ab1e-4999-b2a9-8a601dd0633e

ORDAってバージョン違いだと接続できないんですね 131779900-10509d7a-7a0f-438f-b8a7-15d35896d047

miyako

投稿数 : 480
登録日 : 2016/07/05

トップに戻る Go down

ORDAってバージョン違いだと接続できないんですね Empty Re: ORDAってバージョン違いだと接続できないんですね

投稿 by hosaka 2021-09-02, 1:34 pm

miyako wrote:ODBCドライバーのバージョンはv19またはv18でしょうか(v19でv18に接続することができます)。

オブジェクト型フィールドはバイナリデータとしてドライバーに渡されます。
win10にv18.5のODBCドライバをホームページからダウンロードしてインストールしました。
オブジェクトフィールドとか関係なくダメみたいです。
いずれのテーブルもexcelからは参照できませんでした。

ORDAってバージョン違いだと接続できないんですね Aacaoa16
ORDAってバージョン違いだと接続できないんですね Aacaoa17
hosaka
hosaka

投稿数 : 241
登録日 : 2016/07/04
所在地 : 大阪

トップに戻る Go down

ORDAってバージョン違いだと接続できないんですね Empty Re: ORDAってバージョン違いだと接続できないんですね

投稿 by hosaka 2021-09-02, 2:14 pm

miyako wrote:SQLのオブジェクト型フィールド対応ですが,以下のように計画があります。
計画は計画ですからね〜。バージョンも決まっていないので生温かく見守ってます。
hosaka
hosaka

投稿数 : 241
登録日 : 2016/07/04
所在地 : 大阪

トップに戻る Go down

ORDAってバージョン違いだと接続できないんですね Empty Re: ORDAってバージョン違いだと接続できないんですね

投稿 by Sponsored content


Sponsored content


トップに戻る Go down

トップに戻る


 
Permissions in this forum:
返信投稿: 不可