PB 電子会議室
発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) |
---|---|---|
2347 | 98/07/13 16:23:50 | RE:あ、不安になってきました By f_komatsu |
2345 | 98/07/13 16:16:11 | RE:回答ありがとうございます。 By f_komatsu |
2335 | 98/07/11 15:35:02 | あ、不安になってきました By てとらぽっと |
2333 | 98/07/11 13:18:08 | RE:PB5.0.02: 1つのDBに同時にアクセスしている人数を知る方法はありませんか? By 松本商店 |
2320 | 98/07/10 15:37:39 | 対応方法発見できました。 By f_komatsu |
2312 | 98/07/10 09:25:29 | RE:RE:PB5.0.02: 1つのDBに同時にアクセスしている人数を知る方法はありませんか? By f_komatsu |
2294 | 98/07/09 09:36:43 | RE:PB5.0.02: 1つのDBに同時にアクセスしている人数を知る方法はありませんか? By てとらぽっと |
2288 | 98/07/08 20:20:30 | PB5.0.02: 1つのDBに同時にアクセスしている人数を知る方法はありませんか? By f_komatsu |
カテゴリ:旧電子会議室
日付:1998年07月11日 15:35 発信者:てとらぽっと
題名:あ、不安になってきました
>> 上記の内容を知って何をしたいかと言いますと、DB中の基幹となるテーブルを更新したいのですが自分のほ
>> かに他の人間がそのDBにアクセスしている場合、そのテーブルの更新処理を出来ないようにしたいからです。
>
> これ(A***.DB)は、テーブルですかね。データベース全体なのでしょうか?
>
(中略)
>
> 私の場合は、Oracleなのでよく分かりませんが、Oracleの場合だと、Select
>・・・ for update;の処理を行っておけば他の人から更新されることはないと思い
>ますが...。
>
> 私もまだ使ったことがありません。これから使います。
みなさん、こん○○は。
最初のご質問はデータベース全体の意味と思って回答してしまいましたが、不安になってきました。(^^;
SELECT文の FOR UPDATE (NO WAIT) 句は、あるテーブルの行に対してのロックですね。
これからということで、参考に挙げておきますが、
ORACLEだと 動的パフォーマンス表の V$SESSION を問い合わせることで、
接続中のユーザーを確認することができます。
誰もいないうちに、ばきばきっと基幹部分を更新/メンテナンスしちゃうわけです。
f_komatsuさん、訂正します。
「誰かかアクセスしているから、更新をかけてはいけない」のであれば接続セッションの確認をして下さい。
「自分が更新完了するまでの間、他人が更新をかけてはいけない」のであれば、更新行のロックをかけて下さい。
ちなみにロック中(自分が更新完了するまでの間)に更新をかけようとした人にはビジーのコードが返ります。
データを SELECTするだけなら、通常 更新前のデータを参照することができます。
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS Windows NT 4.0
DBMS Sybase SQL Anywhere Client
Browser (記載なし)
Server SoftWare
OS (記載なし)
DBMS Sybase SQL Anywhere Server
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.