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 (記載なし)
Copyright © 2013 Power Future Co., Ltd.