ハンドルネーム |
ほえほえ
|
製品 |
OBER |
タイトル |
一つのテーブルから複数のFKキーを定義すると
|
メッセージ本文 |
ほえほえです。
一つのテーブルから複数の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)) /
|
|
ハンドルネーム |
ほえほえ
|
製品 |
OBER |
タイトル |
プライマリキーの順番
|
メッセージ本文 |
プライマリキーの作成について質問があります。 プライマリキーはどうやら項目の作成順にて作られているようです。
以下、例で説明します。
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.インデックスを定義する画面にて上下ボタンなどにより 項目の順番を指定できる。 のような対応が必要ではないかと思うのですが。いかがでしょうか?
|
|
ハンドルネーム |
大場@SI
|
製品 |
OB |
タイトル |
Re: データシートでの変更について
|
メッセージ本文 |
こんばんわ システムインテグレータの大場です。
御報告のエラーですが、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等ではレコードの更新はできます。
|
|
ハンドルネーム |
大場@SI
|
製品 |
OB |
タイトル |
Re: INSERT文出力の絞込み機能
|
メッセージ本文 |
こんばんわ システムインテグレータの大場です。
>テーブルのスクリプト出力で、データをInsert文に出力できますが、 >現状だと、必ず全レコード出力しますよね。 > >これを、Where条件を指定して、合致するデータのみを出力する様に >機能追加して頂けると、非常にありがたいです。
ご要望ありがとうございます。 バージョンアップの際に検討させていただきます。
[SEGA] >SEGAです。 > >ObjectBrowserについて、 >テーブルのスクリプト出力で、データをInsert文に出力できますが、 >現状だと、必ず全レコード出力しますよね。 > >これを、Where条件を指定して、合致するデータのみを出力する様に >機能追加して頂けると、非常にありがたいです。 > >ご一考頂ければ幸いです。 >よろしくお願い致します。 >
|
|
ハンドルネーム |
大場@SI
|
製品 |
OB |
タイトル |
Re: 大きいカラムサイズと大量カラムでOBがストールする・・・
|
メッセージ本文 |
こんばんわ システムインテグレータの大場です。
SI OBJECT BROWSER の使用しているBDE(Borland Database Engine)の バッファエラーとなります。 SELECTした結果セットが大きい場合、発生するものです。 現在のところ、プログラム側での制御ができないため、回避策としては FAQにも記述してありますが、 ・列数を絞ったVIEWを作成する。 となります。
ご不便をお掛けして申し訳ございませんが よろしくお願い致します。
[IF] >OBを以前の会社で使っていて今回の仕事先でも導入していただこうと思い試用している藤田と申します。 > >サブジェクトの件ですが、239バイトのカラムが200個以上あるテーブルの内容表示を行うと >プログラムがアベンドしてしまいます。 > >私の中ではそのようなテーブル設計が悪い という結論なのですが仕様上止むを得ない状況です。 >またこのような悪条件の中作業を楽に進めるためにOBを導入したいとも考えております。 > >バージョンは最新のバージョンで試用しております。 >回避方・対策などご教授願えればと思います。
|
|
ハンドルネーム |
oob命
|
製品 |
OB |
タイトル |
データシートでの変更について
|
メッセージ本文 |
データシートで変更を行おうとすると、「ほかのユーザーがレコードを変更したため 編集を実行できませんでした」と表示されてしまいます。このメッセージが表示されると OOBを一旦終了し再度データシートで変更を行おうとしてもメッセージが表示され 変更できません。 (1)どのように回避すればメッセージが出ないようになるか教えてください。 (2)また、データシートへの変更を行いたいのですが、どうすれば可能となりますか。
上記メッセージが発生したのは以下のように実行しました。 (a)端末Aで、アプリケーションを実行してデータシート変更対象となるTABLEのあるレコードを更新した。 (b)その後端末Bで更新したTABLEのデータシートを開き、データを更新しようとした。 (c)「ほかのユーザー・・・」メッセージが表示された。 端末Aでデータシートを開きデータを更新しようとするが現象は変わりませんでした。
ちなみに、sql*plus等ではレコードの更新はできます。
|
|
ハンドルネーム |
arumakan
|
製品 |
OBER |
タイトル |
Re: ありがとうございます
|
メッセージ本文 |
>涙が出そうなほどの嬉しいお言葉をありがとうございます。
そんな滅相もありません。
OBのおかげでPL*SQLの開発がどれだけ楽になったか・・・。 OB-ERもまだまだチューニングの余地がありそうですが、期待していますので、これからも頑張って下さい
|
|
ハンドルネーム |
oob命
|
製品 |
OB |
タイトル |
Re: データの表示について
|
メッセージ本文 |
回答ありがとうございました。
|
|
ハンドルネーム |
IF
|
製品 |
OB |
タイトル |
出力されるエラーです
|
メッセージ本文 |
テーブルのデータ表示を行ったとき「外部例外 C000001D」 そのまま処理が不可能になり、フォームをクローズすると「モジュール oob.exe のアドレス 004031ACでアドレスFFFFFFFCに対する読込違反がおきました。」とのメッセージ表示 Okボタン押下後「0x0000001cの命令が0x0000001cのメモリを参照しました。メモリがreadになることはできませんでした。」と表示され 終了 デバッグの応答を聞かれる。
|
|
ハンドルネーム |
IF
|
製品 |
OB |
タイトル |
大きいカラムサイズと大量カラムでOBがストールする・・・
|
メッセージ本文 |
OBを以前の会社で使っていて今回の仕事先でも導入していただこうと思い試用している藤田と申します。
サブジェクトの件ですが、239バイトのカラムが200個以上あるテーブルの内容表示を行うと プログラムがアベンドしてしまいます。
私の中ではそのようなテーブル設計が悪い という結論なのですが仕様上止むを得ない状況です。 またこのような悪条件の中作業を楽に進めるためにOBを導入したいとも考えております。
バージョンは最新のバージョンで試用しております。 回避方・対策などご教授願えればと思います。
|
|