PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
722 98/03/02 13:42:54 RE(3):アップデートキーのところ、改良させてもらいました By ふくちゃん
718 98/03/02 09:12:34 RE(2):アップデートキーのところ、改良させてもらいました By てとらぽっと
691 98/02/26 17:45:08 RE(1):動的に作成したDWで更新したい By ふくちゃん
687 98/02/26 13:16:12 動的に作成したDWで更新したい By kamogari

カテゴリ:旧電子会議室
日付:1998年03月02日 09:12 発信者:てとらぽっと
題名:RE(2):アップデートキーのところ、改良させてもらいました

ふくちゃんさん、おはようございます。
おもしろい方法だと思いましたので、わたしも参考にさせてもらいました。

ひとつ、

>//該当テーブルのnullableの項目にアップデートキーを設定する
>dw_2.SetFilter( \"nullable = \'N\' \")
>dw_2.Filter()
>ll_kcnt2 = dw_2.RowCount()
>For ll_k = 1 To ll_kcnt2
>  ls_k = dw_2.GetItemString(ll_k,\"column_name\")
>  dw_1.Modify(ls_k + \".KEY = YES\")
>Next

ではユニークが保証されず、あやまったレコードが更新される危険がありますので、
以下のように改良しました。
ちなみにわたしはORACLEをつかっていますので、テーブル名その他はORACLEのものです。
その他のRDBMSでも大体似たようなことができると思います。

1.ユーザー名.USER_INDEXES を、WHERE句
 TABLE_NAME=[更新テーブル名] AND UNIQUENESS=\'UNIQUE\'
 で読み、INDEX_NAME を得ます。
2.そのINDEX_NAMEを条件に、ユーザー名.USER_IND_COLUMNSを読み、ユニークキーの
 カラムを得ます。
3.(ふくちゃんさんと同様に)このカラムをアップデートキーに割り当てます。

たいていは主キーか、主キーがなければユニークキーをはっているはずですので、
使えると思います。

付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

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

Server SoftWare

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

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