■SI Object Browser 掲示板


ユーザの皆様、開発者、サポート担当者の交流のための掲示板です!

ユーザーの皆様同士で教え合ったりもできる交流の場にしたいと思っていますので、相互協力をよろしくお願いします。
なお、過去に同じようなQ&Aがあるケースも多いので、投稿前にキーワード検索してみてください。

discussion
※各投稿のカラーは対象となる製品に対応しています。【■…OB ■…OBER ■…全般 ■…その他】
※ライセンスに関するお問合せにつきましては、お問い合わせページよりご連絡いただきますようお願いいたします。
※誹謗中傷や公序良俗に反する書き込みはご遠慮ください。運営側の判断によりメッセージを削除する場合があります。
※環境依存や技術的調査が必要な問題については掲示板上ではお答えしかねます。ご了承ください。

よくある質問(FAQ)

検索オプション 矢印

~
リセット
新規投稿
お世話になっています。

OBERで以下の手順にてPKのチェックが消滅
するというバグらしい挙動がみられます。

1.エンティティ属性入力ウィンドウを横スクロールが発生
  するサイズにする。
2.PKにチェックをいれる。
3.カーソルを一番右(定義内容)まで移動する。
4.カーソルを一番左(主キー)まで移動する。

Version 1.2.1.10
version 1.2.3.12
ともにPKのチェックが消えました。

過去ログは確認しましたが、既出でしたら申し訳ありません。

対応よろしくお願いいたします。
こんばんわ
システムインテグレータの大場です。

現象確認いたしました。
バージョンアップの際に対応させていただきます。

また、不具合等のお問合せは、サポート宛にメールをお送りくださるよう
お願い致します。
Object Browser7.0.12.52で、固定長のテキストファイルをロードさせようとしていますが、
実行すると、アプリケーションエラーでSQL*Loader.exeが終了してしまいます。
尚、使用しているOSはWindows2000 Pro SP3です。
これって、制御ファイル等の指定がまずいと、こうなっちゃうのでしょうか?
こんばんわ
システムインテグレータの大場です。
CTLファイル等の設定が間違っていたとしても
アプリケーションエラーは発生しないと思われますので
エラーメッセージの画面画像と、
オラクルサーバーのバージョン、オラクルクライアントのバージョンを明記の上
サポート宛にメールをお送りくださるようお願いします。

[まつした]
>Object Browser7.0.12.52で、固定長のテキストファイルをロードさせようとしていますが、
>実行すると、アプリケーションエラーでSQL*Loader.exeが終了してしまいます。
>尚、使用しているOSはWindows2000 Pro SP3です。
>これって、制御ファイル等の指定がまずいと、こうなっちゃうのでしょうか?
>
Linux用 2002/11/18 19:09 OB 1
Windows2000にOracle9iをインストールしています。OBが9i対応になったら買おうと思っています。Windows2000が不安定で、近い将来、MSのサーバーはすたれ、Linuxサーバーに移行せざる得ないと感じています。富士通もLinuxサーバーで統一すると発表があったし、昨日の朝日新聞には、政府関係のサーバーも脱Windowsでオープンソースのサーバー(BSDはメジャーではないので、Linuxのことでしょう)を採用すると書かれていました。

サーバーとクライアントの2台のPCを使えば、LinuxのOracleにWindowsのOBクライアントという使い方ができるのでしょうが、2台のPCを置く場所がないので、できれば、Linuxで動くOBを発売してください。DelphiからKylixへの移植は難しくない(といってもプログラムを書き直す必要はあるんでしょうね)と雑誌にかかれていましたので、期待しています。

Linux上でWindowsのエミュレーター(大量のメモリーがいるんでしょうねえ?)を動かせばいいのかもしれませんが、動作保証がないと不安です。それと速度も不安です。
Re: Linux用 2002/11/18 21:30 OB
こんばんわ
システムインテグレータの大場です。

ユーザーのニーズがあれば、
Linux版(UNIX版?)も
検討させていただきます。


[まるこの父ヒロシ]
>Windows2000にOracle9iをインストールしています。OBが9i対応になったら買おうと思っています。Windows2000が不安定で、近い将来、MSのサーバーはすたれ、Linuxサーバーに移行せざる得ないと感じています。富士通もLinuxサーバーで統一すると発表があったし、昨日の朝日新聞には、政府関係のサーバーも脱Windowsでオープンソースのサーバー(BSDはメジャーではないので、Linuxのことでしょう)を採用すると書かれていました。
>
>サーバーとクライアントの2台のPCを使えば、LinuxのOracleにWindowsのOBクライアントという使い方ができるのでしょうが、2台のPCを置く場所がないので、できれば、Linuxで動くOBを発売してください。DelphiからKylixへの移植は難しくない(といってもプログラムを書き直す必要はあるんでしょうね)と雑誌にかかれていましたので、期待しています。
>
>Linux上でWindowsのエミュレーター(大量のメモリーがいるんでしょうねえ?)を動かせばいいのかもしれませんが、動作保証がないと不安です。それと速度も不安です。
お世話になっています。
現在業務でOBERの試用をしています。

レポート出力における内容ですが、
外部キーの場合、リレーション内容として、
参照先表名や参照先の列名を出力できないでしょうか?

なにか方法がありましたらお願い致します。


こんばんわ
システムインテグレータの大場です

>レポート出力における内容ですが、
>外部キーの場合、リレーション内容として、
>参照先表名や参照先の列名を出力できないでしょうか?

エンティティ一覧表のレポート定義で
明細情報をリレーションに設定することにより
親テーブルと子テーブルの出力は可能ですが、
列名までは、現在のところ対応してません。

要望として承り
今後のバージョンアップの際に検討させていただきます。


[fairyking]
>お世話になっています。
>現在業務でOBERの試用をしています。
>
>レポート出力における内容ですが、
>外部キーの場合、リレーション内容として、
>参照先表名や参照先の列名を出力できないでしょうか?
>
>なにか方法がありましたらお願い致します。
>
>
>
ご回答ありがとうございました。

今の現場では、エンティティ定義書のFKの項目に参照先表名と参照先項目名を
記述する方針なので、エンティティ一覧からの出力と融合することは、
できませんでした。

ER図でFKが入力できていたので、OBERを使ってER図を書けば、
出力のエンティティ定義書にFKも含め全てのER図の情報が(多分)印刷される
と言って、上司を説得して、ライセンスを予算化してもらっています。
リサーチがいい加減だったのが問題なのですが、
正式機能としてサポートしていただける予定はないのでしょうか?
無知なユーザでもちゃんと使えますってセールストークにもなりますよね(-_-;)
ほえほえです。

一つのテーブルから複数のFKを定義すると、不正なFKを作成するスクリプトが出力
されるようです。

下記例ではQUOTATION(見積)テーブルからCUST_CP(取引先担当者)に3つのFKキーを
作成したいのですが、3つとも同じ物が作成されてしまいます。
今は手作業でスクリプトを修正していますが、こういったケースでは
どのようにするのがいいのでしょうか?
今のOBERでは参照先の項目は指定できますが、参照元の項目を設定する
ところがないようなのですが。


ALTER TABLE QUOTATION
ADD(CONSTRAINT FK_QUOTATION_3 FOREIGN KEY(CSC_CUST_CD, CTC_CUST_CD, CPC_CUST_CD, CSC_CUST_CNTCT_PSNAL_NO, CTC_CUST_CNTCT_PSNAL_NO, CPC_CUST_CNTCT_PSNAL_NO) REFERENCES CUST_CP (CUST_CD, CUST_CNTCT_PSNAL_NO))
/
ALTER TABLE QUOTATION
ADD(CONSTRAINT FK_QUOTATION_4 FOREIGN KEY(CSC_CUST_CD, CTC_CUST_CD, CPC_CUST_CD, CSC_CUST_CNTCT_PSNAL_NO, CTC_CUST_CNTCT_PSNAL_NO, CPC_CUST_CNTCT_PSNAL_NO) REFERENCES CUST_CP (CUST_CD, CUST_CNTCT_PSNAL_NO))
/
ALTER TABLE QUOTATION
ADD(CONSTRAINT FK_QUOTATION_5 FOREIGN KEY(CSC_CUST_CD, CTC_CUST_CD, CPC_CUST_CD, CSC_CUST_CNTCT_PSNAL_NO, CTC_CUST_CNTCT_PSNAL_NO, CPC_CUST_CNTCT_PSNAL_NO) REFERENCES CUST_CP (CUST_CD, CUST_CNTCT_PSNAL_NO))
/
こんにちは
システムインテグレータの大場です。

以下のオペレーションで、対応可能かと思われます。
(見当違いの回答でしたらすみません。)

1.CUST_CPより、QUOTATIONにFKを貼る。

2.QUOTATIONに作成されたCUST_CD, CUST_CNTCT_PSNAL_NOを属性画面で
CSC_CUST_CD,CSC_CUST_CNTCT_PSNAL_NOに物理名を変更する。

3.CUST_CPより、QUOTATIONにFKを貼る。

4.QUOTATIONに作成されたCUST_CD, CUST_CNTCT_PSNAL_NOを属性画面で
CTC_CUST_CD,CTC_CUST_CNTCT_PSNAL_NOに物理名を変更する。

5.CUST_CPより、QUOTATIONにFKを貼る。

6.QUOTATIONに作成されたCUST_CD, CUST_CNTCT_PSNAL_NOを属性画面で
CPC_CUST_CD,CPC_CUST_CNTCT_PSNAL_NOに物理名を変更する。

これでスクリプトを作成すると以下のようになります。

ALTER TABLE QUOTATION
ADD(CONSTRAINT FK_3 FOREIGN KEY(CSC_CUST_CD, CSC_CUST_CNTCT_PSNAL_NO) REFERENCES CUST_CP (CUST_CD, CUST_CNTCT_PSNAL_NO))
/
ALTER TABLE QUOTATION
ADD(CONSTRAINT FK_2 FOREIGN KEY(CTC_CUST_CD, CTC_CUST_CNTCT_PSNAL_NO) REFERENCES CUST_CP (CUST_CD, CUST_CNTCT_PSNAL_NO))
/
ALTER TABLE QUOTATION
ADD(CONSTRAINT FK_1 FOREIGN KEY(CPC_CUST_CD, CPC_CUST_CNTCT_PSNAL_NO) REFERENCES CUST_CP (CUST_CD, CUST_CNTCT_PSNAL_NO))
/
はじめましてubuと申します。
お世話になります。

私も同じように外部キーを作成するときに悩んでいます。
下記のようなテーブルをつくり

テーブルAAA
--------------------
ID :主キー
Data :一意

テーブルBBB
--------------------
ID :主キー
Data1 :
Data2 :

・リレーション
AAA.Data ---● BBB.Data1
AAA.Data ---● BBB.Data2

下記のような結果を得たい場合はどのようにしたらよいのでしょうか?
-(DDL)-----------------------

CREATE TABLE AAA
(
ID VARCHAR2(3) NOT NULL,
DATA VARCHAR2(100)
)
/
ALTER TABLE AAA
ADD(PRIMARY KEY (ID) USING INDEX)
/
ALTER TABLE AAA
ADD(CONSTRAINT AAA_UNQ UNIQUE (DATA) USING INDEX)
/
CREATE TABLE BBB
(
ID NUMBER(10,0) NOT NULL,
DATA1 VARCHAR2(100),
DATA2 VARCHAR2(100)
)
/
ALTER TABLE BBB
ADD(PRIMARY KEY (ID) USING INDEX)
/
ALTER TABLE BBB
ADD(CONSTRAINT FK_1 FOREIGN KEY(DATA1) REFERENCES AAA (DATA))
/
ALTER TABLE BBB
ADD(CONSTRAINT FK_2 FOREIGN KEY(DATA2) REFERENCES AAA (DATA))
/


以下のオペレーションを試してみました。

>以下のオペレーションで、対応可能かと思われます。
>(見当違いの回答でしたらすみません。)
>
>1.CUST_CPより、QUOTATIONにFKを貼る。
>
>2.QUOTATIONに作成されたCUST_CD, CUST_CNTCT_PSNAL_NOを属性画面で
>CSC_CUST_CD,CSC_CUST_CNTCT_PSNAL_NOに物理名を変更する。

ここでリレーションをつないだ項目に主キーがついてしまっているのではずします。
「登録」ボタンをクリック
「主キー項目の情報を外部キー項目に反映させますか?」
のメッセージに「いいえ」で回答

>3.CUST_CPより、QUOTATIONにFKを貼る。
>
>4.QUOTATIONに作成されたCUST_CD, CUST_CNTCT_PSNAL_NOを属性画面で
>CTC_CUST_CD,CTC_CUST_CNTCT_PSNAL_NOに物理名を変更する。

2と同様の操作

<5.6.省略>

で、この操作で期待通りの結果が得られました。

が、その後設定を保存してモデルのファイルを開きなおすと
はずしたはずの外部キーで自動設定された主キーが復活してしまっています。

さらにフィールド名は物理名を変更する前の状態になってます。
(フィールド名を変更した物はそのままです。)

以上ですが。何かオペレーションなどにミスがあればご教授ください。
よろしくお願いします。

>これでスクリプトを作成すると以下のようになります。
>
>ALTER TABLE QUOTATION
> ADD(CONSTRAINT FK_3 FOREIGN KEY(CSC_CUST_CD, CSC_CUST_CNTCT_PSNAL_NO) REFERENCES CUST_CP (CUST_CD, CUST_CNTCT_PSNAL_NO))
>/
>ALTER TABLE QUOTATION
> ADD(CONSTRAINT FK_2 FOREIGN KEY(CTC_CUST_CD, CTC_CUST_CNTCT_PSNAL_NO) REFERENCES CUST_CP (CUST_CD, CUST_CNTCT_PSNAL_NO))
>/
>ALTER TABLE QUOTATION
> ADD(CONSTRAINT FK_1 FOREIGN KEY(CPC_CUST_CD, CPC_CUST_CNTCT_PSNAL_NO) REFERENCES CUST_CP (CUST_CD, CUST_CNTCT_PSNAL_NO))
>/
>
プライマリキーの作成について質問があります。
プライマリキーはどうやら項目の作成順にて作られているようです。

以下、例で説明します。


1.テーブルの定義は項目1番目~6番目の順序で作成した。
2.その後、4番目の項目を一番上に移動した。
3.プライマリキーのチェックは項目1番目から4番目にチェックした。
4.その結果、出力されるプライマリキーインデックスの順番としては
  (4番目、1番目、2番目、3番目)
  を期待していたが、作成した順番の
  (1番目、2番目、3番目、4番目)
で作成された。

---------プレビューより抜粋-------
CREATE TABLE エンティティ1
(
4番目(P4) CHAR(8) NOT NULL,
1番目(P1) CHAR(8) NOT NULL,
2番目(P2) CHAR(8) NOT NULL,
3番目(P3) CHAR(8) NOT NULL,
5番目(なし) CHAR(8),
6番目(なし) CHAR(8)
)
/
ALTER TABLE エンティティ1
ADD(PRIMARY KEY (1番目(P1), 2番目(P2), 3番目(P3), 4番目(P4)) USING INDEX)
/
-------------------------

プライマリキーの項目順番はとても重要だと思います。図上の項目の順番にてインデックスが
利くようにコーディングするのですが、違う順番で定義されているとインデックスが
ききません。

そこで
1.ER図上で見える順番でプライマリキーを作成する
2.インデックスを定義する画面にて上下ボタンなどにより
  項目の順番を指定できる。
のような対応が必要ではないかと思うのですが。いかがでしょうか?




こんにちは
システムインテグレータの大場です。

>1.ER図上で見える順番でプライマリキーを作成する
>2.インデックスを定義する画面にて上下ボタンなどにより
>  項目の順番を指定できる。
>のような対応が必要ではないかと思うのですが。いかがでしょうか?
>

ご要望ありがとうございます。
バージョンアップの際に検討させていただきます。


[ほえほえ]
>プライマリキーの作成について質問があります。
>プライマリキーはどうやら項目の作成順にて作られているようです。
>
>以下、例で説明します。
>
>
>1.テーブルの定義は項目1番目~6番目の順序で作成した。
>2.その後、4番目の項目を一番上に移動した。
>3.プライマリキーのチェックは項目1番目から4番目にチェックした。
>4.その結果、出力されるプライマリキーインデックスの順番としては
>  (4番目、1番目、2番目、3番目)
>  を期待していたが、作成した順番の
>  (1番目、2番目、3番目、4番目)
>で作成された。
>
>---------プレビューより抜粋-------
>CREATE TABLE エンティティ1
>(
> 4番目(P4) CHAR(8) NOT NULL,
> 1番目(P1) CHAR(8) NOT NULL,
> 2番目(P2) CHAR(8) NOT NULL,
> 3番目(P3) CHAR(8) NOT NULL,
> 5番目(なし) CHAR(8),
> 6番目(なし) CHAR(8)
>)
>/
>ALTER TABLE エンティティ1
> ADD(PRIMARY KEY (1番目(P1), 2番目(P2), 3番目(P3), 4番目(P4)) USING INDEX)
>/
>-------------------------
>
>プライマリキーの項目順番はとても重要だと思います。図上の項目の順番にてインデックスが
>利くようにコーディングするのですが、違う順番で定義されているとインデックスが
>ききません。
>
>そこで
>1.ER図上で見える順番でプライマリキーを作成する
>2.インデックスを定義する画面にて上下ボタンなどにより
>  項目の順番を指定できる。
>のような対応が必要ではないかと思うのですが。いかがでしょうか?
>
>
>
>
>
データシートで変更を行おうとすると、「ほかのユーザーがレコードを変更したため
編集を実行できませんでした」と表示されてしまいます。このメッセージが表示されると
OOBを一旦終了し再度データシートで変更を行おうとしてもメッセージが表示され
変更できません。
(1)どのように回避すればメッセージが出ないようになるか教えてください。
(2)また、データシートへの変更を行いたいのですが、どうすれば可能となりますか。

上記メッセージが発生したのは以下のように実行しました。
(a)端末Aで、アプリケーションを実行してデータシート変更対象となるTABLEのあるレコードを更新した。
(b)その後端末Bで更新したTABLEのデータシートを開き、データを更新しようとした。
(c)「ほかのユーザー・・・」メッセージが表示された。
端末Aでデータシートを開きデータを更新しようとするが現象は変わりませんでした。

ちなみに、sql*plus等ではレコードの更新はできます。
こんばんわ
システムインテグレータの大場です。

御報告のエラーですが、SI Object Browser の使用している
BDE(Borland Database Engine)が何らかの原因で
行の特定ができない場合発生するエラーとなります。
お手数ですが以下の情報をサポート宛にメール頂けますでしょうか。

1)
表示メニュー>「オプション」>「SQL結果出力」タブの
『データ編集時の自動コミットを行わない』= ON
『初期状態をデータ編集可能にする』= ON
にしてデータタブ左のコミットボタン(○ボタン)にてデータを確定した場合
現象が再現するか

2)
エラーの発生する行は特定されているか。
(同一テーブルでもエラーが発生しない行もある、他のテーブルでは全く出ない等)

3)
環境情報
・サーバ側Oracleバージョン
・クライアント側sqlora8.dllバージョン
・BDE設定でのVENDER INIT 値

どうぞよろしくお願いします。


[oob命]
>データシートで変更を行おうとすると、「ほかのユーザーがレコードを変更したため
>編集を実行できませんでした」と表示されてしまいます。このメッセージが表示されると
>OOBを一旦終了し再度データシートで変更を行おうとしてもメッセージが表示され
>変更できません。
>(1)どのように回避すればメッセージが出ないようになるか教えてください。
>(2)また、データシートへの変更を行いたいのですが、どうすれば可能となりますか。
>
>上記メッセージが発生したのは以下のように実行しました。
>(a)端末Aで、アプリケーションを実行してデータシート変更対象となるTABLEのあるレコードを更新した。
>(b)その後端末Bで更新したTABLEのデータシートを開き、データを更新しようとした。
>(c)「ほかのユーザー・・・」メッセージが表示された。
>端末Aでデータシートを開きデータを更新しようとするが現象は変わりませんでした。
>
>ちなみに、sql*plus等ではレコードの更新はできます。
お世話になります。

回答頂いた1)の設定後、再実行したところエラーが発生しませんでした。
ありがとうございました。
OBを以前の会社で使っていて今回の仕事先でも導入していただこうと思い試用している藤田と申します。

サブジェクトの件ですが、239バイトのカラムが200個以上あるテーブルの内容表示を行うと
プログラムがアベンドしてしまいます。

私の中ではそのようなテーブル設計が悪い という結論なのですが仕様上止むを得ない状況です。
またこのような悪条件の中作業を楽に進めるためにOBを導入したいとも考えております。

バージョンは最新のバージョンで試用しております。
回避方・対策などご教授願えればと思います。
テーブルのデータ表示を行ったとき「外部例外 C000001D」
そのまま処理が不可能になり、フォームをクローズすると「モジュール oob.exe のアドレス 004031ACでアドレスFFFFFFFCに対する読込違反がおきました。」とのメッセージ表示
Okボタン押下後「0x0000001cの命令が0x0000001cのメモリを参照しました。メモリがreadになることはできませんでした。」と表示され 終了 デバッグの応答を聞かれる。
こんばんわ
システムインテグレータの大場です。

SI OBJECT BROWSER の使用しているBDE(Borland Database Engine)の
バッファエラーとなります。
SELECTした結果セットが大きい場合、発生するものです。
現在のところ、プログラム側での制御ができないため、回避策としては
FAQにも記述してありますが、
・列数を絞ったVIEWを作成する。
となります。

ご不便をお掛けして申し訳ございませんが
よろしくお願い致します。

[IF]
>OBを以前の会社で使っていて今回の仕事先でも導入していただこうと思い試用している藤田と申します。
>
>サブジェクトの件ですが、239バイトのカラムが200個以上あるテーブルの内容表示を行うと
>プログラムがアベンドしてしまいます。
>
>私の中ではそのようなテーブル設計が悪い という結論なのですが仕様上止むを得ない状況です。
>またこのような悪条件の中作業を楽に進めるためにOBを導入したいとも考えております。
>
>バージョンは最新のバージョンで試用しております。
>回避方・対策などご教授願えればと思います。
対応法ありがとうございます。
試してみます。