[ドスパラ PC] 電源は本当に弱いのか?

そんなに長く使うつもりはなかったのだが、未だに 2008 年 6 月に買った ドスパラの BTO パソコンを使っている。 HDD や DVD ドライブは変更され、内部も色々と拡張してあるが、 4 年を過ぎたあたりから PC の調子がおかしくなった。

システムがいきなり停止する (Windows エラーログに書き込まれる前に停止) 。
この手のエラーはハードウェアなのだと思っていたのだが、5 年を突破するとログイン時にすら停止してしまうほど。
これはいよいよ PC を買い換えなきゃダメかと思って、色々と情報を集めてみると、 ( 買うときには知らなかったのだが ) ドスパラの BTO パソコン にはよろしくない話題も多々あった。

そこで、数千円で直ったらもうけものくらいの気持ちで電源を交換してみたら、それまでの不安定感が嘘のように安定してくれた。


今回交換したのは、 SILVERSTONE SST-ST50F-ES。
音も静かで、今のところ不満は全くない。次回、もし電源を買う機会があったらこれにしよう。


あまり評判の良くない EVER GREEN という電源。
5 年間で、電源を入れない日はほぼなく、一日の使用時間は 5 時間ほど。
通常の電源の耐久性がどの程度なのか、電源が壊れるまで同じ PC を使ったことがないので不明だが……。

どこが壊れたかという事実だけで語るならば、マザーボードよりも、CPU よりも、電源が先に壊れたということになる。逆に言えば、電源はけっこう重要なのだと再認識した。

ドスパラの PC 自体は、ケーブルもちゃんと固定してあたし、ケースの剛性も高そうでそんなに印象は悪くない。

でも、次も買うかと言われたら……どうだろう? (笑)

[VBA] オブジェクトが閉じている場合は、操作は許可されません。



ADO にてストアドを呼び出した際に、呼び出しは成功し、戻り値も返ってくるにもかかわらず Recordset の接続が切断されてしまうエラーに遭遇。
原因は、ストアド側で SET NOCOUNT ON; 以前に Select や Insert などの処理を行っていたためだった。

SET NOCOUNT ON; に設定すると、クライアント側に処理された行数を返却しないので、ネットワークの帯域も圧迫しないらしい。
これはクライアント側への通知設定であるので、@@ROWCOUNT 関数は更新される。

SET NOCOUNT (Transact-SQL) - msdn

[Google Chrome] 新しいタブ 画面を戻す


Chrome の新しいタブがだいぶやらかしていて驚愕した。自分の使い方だと、アプリをいくつか登録しておいたので、それらに一発でアクセスできなくなってだいぶ使い勝手が悪くなった。
そもそも、よく使うタブとかいらない。

Chromeの「おせっかい」な新しい新規タブページを以前の設定に戻す方法 - lifehacker
http://www.lifehacker.jp/2013/10/131004chrome.html
  1. アドレスバーに chrome://flags/ と入力。
  2. 設定画面から 「Instant Extended API を有効にする」 を探す。Ctrl + F で検索窓を出して、"ins" まで入力するとハイライトするはず。
  3. 「規定」 を 「無効」 に変更。
  4. Chrome の再起動。
ここ数年の Google は変更する度にどんどん使い勝手が悪くなっている気がする。

[Excel] セルの背景色を取得する

Excel にて、シートに使われている色が、テーマの色、標準の色、最近使用した色、いずれにもない場合、どのように取得するのだろうか?
背景色は以下の通り。
  1. 該当のセルを選択する。
  2. [その他の色] を選択。
  3. 色の設定ダイアログが表示され、使用されている色がわかる。

該当のセルを右クリックし、セルの書式設定から [塗りつぶし] - [その他の色] でもわかる。
文字色も同じ要領で取得することができる。

[VBA] 複数ステップの OLE DB の操作でエラーが発生しました。

VBA からストアドを呼び出した際に、以下のようなエラーが発生した。
ストアド内で使用しているテーブルやビューなどの定義が違う場合でもこのようなエラーメッセージが返ってくるようだ。

Msg = 複数ステップの OLE DB の操作でエラーが発生しました。各 OLE DB の状態の値を確認してください。作業は終了しませんでした。
Number = -2147217887
SqlState   =
Source = Microsoft OLE DB Provider for SQL Server
NativeError = 0

[SQL Server] データをランダムに抽出するための NEWID 関数と件数指定

SQL Server には、ランダムにデータを抽出したい場合などのために、NEWID() という組み込み関数が用意されている。

NEWID (Transact-SQL) - msdn
http://technet.microsoft.com/ja-jp/library/ms190348.aspx

上記の NEWID() と TOP を組み合わせることで、ランダムに指定した件数のデータを抽出する SELECT 文が完成する。
IF EXISTS (SELECT * FROM TEMPDB..SYSOBJECTS WHERE ID = OBJECT_ID('TEMPDB..#HOGE')) DROP TABLE #HOGE
CREATE TABLE #HOGE
(
 NUM  INT IDENTITY
 ,NAME  VARCHAR(20)
)
INSERT INTO
 #HOGE (NAME)
VALUES
 ('Casey ')
 ,('Katelyn')
 ,('Garrett ')
 ,('Leslie ')
 ,('Spencer')
 ,('Monique')
 ,('Martin')
 ,('Alexandria')
 ,('George')
 ,('Holly')
 ,('Manuel')
 ,('Mayra')
 ,('Marcus')
 ,('Krystal')
 ,('Mario')
 ,('Bianca')

-- TOP で件数指定することで、ランダムに取得。
SELECT
 TOP 10
 NUM
 ,NAME
FROM
 #HOGE
ORDER BY NEWID()

DROP TABLE #HOGE

[SQL Server] ランダム関数で乱数を取得

SQL Server で乱数を取得したい場合、RND() 関数を使用する。
これは 0 以上 1 未満の範囲の値を返す関数である。

Rnd 関数 - msdn
http://msdn.microsoft.com/ja-jp/library/cc410290.aspx
SELECT
 RAND() RND
 -- 乱数取得 (0 ~ 99)
 ,CONVERT(NUMERIC(2,0), RAND() * 100) RND0_99
 -- 乱数取得 (0 ~ 999)
 ,CONVERT(NUMERIC(3,0), RAND() * 1000) RND0_999