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 (記載なし)

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