PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
6021 99/04/15 23:44:59 RE(4):PB6.5: 分散環境で継承したオブジェクトをProxyから参照できない By あぶさん
6017 99/04/15 20:58:28 RE(3):PB6.5: 分散環境で継承したオブジェクトをProxyから参照できない By kar
6003 99/04/15 14:19:53 RE(2):PB6.5: 分散環境で継承したオブジェクトをProxyから参照できない By あぶさん
5983 99/04/14 19:27:46 RE(1):PB6.5: 分散環境で継承したオブジェクトをProxyから参照できない By kar
5903 99/04/09 14:53:33 PB6.5: 分散環境で継承したオブジェクトをProxyから参照できない By あぶさん

カテゴリ:PowerBuilderの開発環境
日付:1999年04月14日 19:27 発信者:kar
題名:RE(1):PB6.5: 分散環境で継承したオブジェクトをProxyから参照できない

あぶさんさん、こんばんは。
#って、デフォルトで書かれるんですね。すごいっ。

かりこみと申します。

「インスタンス変数の参照ができない」というのは、
「継承先で新たに定義したインスタンス変数が参照できない」=コンパイルエラー
との意味だと解釈して、コメントします。
#意味が違ったらごめんなさい。


>// \"u_gui_if\"継承した\"u_gui_if2\"の場合、生成は出来るがインスタンス変数の参照が[出来ない]
>u_gui_if i_gui_if
>g_connect.createinstance(i_gui_if,\"u_gui_if2\")

この書き方の場合、クラスu_gui_if2型のインスタンスは確かに生成されますが、
変数i_gui_ifは、あくまでもu_gui_if型ですので、u_gui_if2型にのみ定義された
インスタンス変数の参照はできません。(コンパイルエラーになる)

>// 因みにデータ宣言事態を変更しても同等
>u_gui_if i_gui_if2
>g_connect.createinstance(i_gui_if)

この書き方は、変数宣言の変数名を替えているだけなので、無意味です。
生成されるリモートオブジェクトは、u_gui_if型です。
#タイプミスだったらごめんなさい。

やり方として、

単純に、
>u_gui_if2 i_gui_if2
>g_connect.createinstance(i_gui_if2)
>i_gui_if2.xxx=yyy   //u_gui_if2固有のインスタンス変数を参照

もしくは、すこしもったいつけて
1:>u_gui_if i_gui_if
2:>u_gui_if2 i_gui_if2
3:>g_connect.createinstance(i_gui_if,\"u_gui_if2\")
4:>i_gui_if2=i_gui_if  //型変換
5:>i_gui_if2.xxx=yyy   //u_gui_if2固有のインスタンス変数を参照

というように書くことは可能です。
もったいつけた書き方の方は、3のインスタンス生成は継承元オブジェクトに
実装して自動化したいが、継承先オブジェクトでは、5のように個別に作成した
リモートオブジェクトを扱う、という要件を満たすためにこちらで作成した
クラスライブラリで使っているテクニックです。

いかがなものでしょう。
#はずしたかな。


付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS Windows98
DBMS Oracle SQL*Net 8
Browser (記載なし)

Server SoftWare

OS (記載なし)
DBMS Oracle 8.0
WebServer (記載なし)

PowerSpaceの運営は、パワーフューチャー株式会社が行っております。
Copyright © 2013 Power Future Co., Ltd.