PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
2094 98/06/25 20:52:50 RE:RE:RE:New!はInsertでは? By あすかちゃんの父
2091 98/06/25 19:51:33 RE:RE:New!はInsertでは? By manabu
2090 98/06/25 19:51:22 RE:RE:New!はInsertでは? By manabu
2077 98/06/25 14:10:44 RE:New!はInsertでは? By あすかちゃんの父
2074 98/06/25 13:44:52 妥協策で一応、対処しました。 重複キーに対する上書き方法を教えて下さい。 By まこと
2064 98/06/25 11:08:56 作業用のテーブルに入れると、検索が楽です By てとらぽっと
2052 98/06/24 21:16:46 RE:RE:PB6: 動的に作成したDWにImportしたデータに対して、主キーのデータを条件にした検索をしたい。 By まこと
2039 98/06/24 17:25:59 RE:PB6: 動的に作成したDWにImportしたデータに対して、主キーのデータを条件にした検索をしたい。 By manabu
2037 98/06/24 16:26:11 PB6: 動的に作成したDWにImportしたデータに対して、主キーのデータを条件にした検索をしたい。 By まこと

カテゴリ:旧電子会議室
日付:1998年06月24日 21:16 発信者:まこと
題名:RE:RE:PB6: 動的に作成したDWにImportしたデータに対して、主キーのデータを条件にした検索をしたい。

>A.全件検索しておいて、そこから探す。
> 1.同じデータウィンドウをもう一つ作成する。
> 2.1で作成したデータウィンドウでデータを全件検索する。
> 3.インポートしたデータウィンドウの主キー値を、
>  1で作成したデータウィンドウのデータからFind()する。(フィルタをかける方法もあります)
> 4.インポートデータ分、3を繰り返す。
この方が良さそうですね。(^^)
>B.とにかく更新してみる。
> 1.Update()で更新する。
> 2.重複エラーが起こった場合は、エラーの起こった行をNew!に変更する。
> 3.Update()が成功するまで1と2を繰り返す。
> 4.Update()が成功しても、COMMITしない
これは可能なんですか?
できなかったので、登録しようとしているデータの主キーでtableを検索しようとしていたのです。
DWは一覧画面で、Importすると3000件がDWに入ります。
重複エラー時に、該当の行をNew!に変更する所を教えて下さい。
下記をDWのdberrorイベントに記述しましたが、上書きする事ができません。
CASE 1 // 一意制約違反
if MessageBox(\"一意制約違反\",string(row) + \" 行目の一意制約違反です。\" + & 
   \"上書き保存しますか?\",StopSign!,YesNo!) = 1  then
   this.SetItemStatus(row,0, Primary!, NewModified!)
   this.Update()
   Commit Using SQLCA;
   if SQLCA.SQLCode <> 0  then
   MessageBox(\"コミット失敗\",SQLCA.SQLErrText)
    Return
   end if
   RETURN 1
else
  this.DeleteRow(row)
end if
NewModified!をNew!にしてもダメでした。
上記の場合、上書き保存で”はい”を選択したものが上書きされない。
(他にも動作がおかしい事だらけ)
Import用と一覧画面を分け、上書き時は一覧画面にFilterを掛けて削除し、
Import側ではチェックが終了した後に再度Updateを掛けた方がいいのでしょうか?
(Importの更新イベントで、Update()を2回記述するという事)
>Aはまことさんの考えている方法の改良です。
>いちいちSQLを作成しないで、全部持ってきておくと...
># かなり安易ですね。データ量が多いと使い物にならないでしょう。(^^;)
ですね。

付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS (記載なし)
DBMS (記載なし)
Browser (記載なし)

Server SoftWare

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

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