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