robocoyというコピー機能がある。XPではリソースキットを導入しないと使えないが、VistaではOS標準コマンドだそうだ。7ではどうなのか知らないが、おそらくOS標準だろう。

今後はxcopyではなくrobocoyを、という目算らしい。たかがコピーであるが、失敗したときのリトライとかもできるようになっているそうで、より堅牢になっているのだろう。しかし、多機能であるがゆえに分かりにくい。例文なんかがあればいいなと思いつつ、ついxcopyを使ってしまっている。

そんな折、robocopy GUI なるものがあると聞き、使ってみた。これもマイクロソフト製で無償で利用が可能である。

画面はこんな感じだ。

$VBA (マクロ) 作法/コーディング規約 集約中 ~ メタボなプログラムにサヨナラしよう

$VBA (マクロ) 作法/コーディング規約 集約中 ~ メタボなプログラムにサヨナラしよう

$VBA (マクロ) 作法/コーディング規約 集約中 ~ メタボなプログラムにサヨナラしよう


マイクロソフトなりの洒落だろうか。いくらオプション群を並べられても、その意味が分からないからコマンドを打つのと変わらないんじゃ?
タブで機能ごとには分けているようなのでそこだけは真っ当か。これが1とか2とかなら更に洒落が効いていたかも知れない。

で、これは使うまいと別のツールを探すことにした。
SQL Server のデータをゴニョゴニョして調査するツールを作ったが、あるサーバーには接続できない事象があった。

接続できるサーバー:Windows 2003 R2 / SQL Server 2005
接続不可なサーバー:Windows 2008 R2 / SQL Server 2008 R2

Excel から ADO 接続していたが、最近ADOなんてサポートしなくなったのか?とかで調べるがそのような情報はない。SQL Server Browser というサービスが起動している必要があるという記載をどこかで見つけ、試してもダメ。ファイヤーウォールか?

試しにSQL Server Management Studio にて接続を試みるも、これもダメ。ということはファイヤーウォール?と調べると、確かにファイヤーウォール上許可はなかった。よし、1433ポートを許可するよう追加、と言う作業をしていると、確か4年ほど前にもSQL Server2005 で似たようなことに遭遇したことをふと思い出した。デフォルトではSQL ServerはTCP/IPでの接続できるようになっていなかったはず
状態を調べると、SQL Server でTCP/IP接続が許可されていない。接続できるよう設定変更。

これにより SQL Server Management Studio での利用がOKになった。ツールからのアクセスもOK。ほっと一安心である。


【まとめ】
・SQL Server 2005 以降は TCP/IP でデータベースへの接続を行おうとしてもデフォルトでは不可。
・調査にはSQL Server Management Studioも使うこと。
・ファイヤーウォールの設定と、SQL Server 自体のTCP/IPの利用可否を確認すること。

【おまけ】
ADOでSQL Server へ接続する際のプロバイダー名が追加されていた。
・従来:SQLOLEDB
・SQL Server 2005:SQLNCLI
・SQL Server 2008:SQLNCLI10

なお、SQL Server 2005/2008 でも SQLOLEDB を使用することは可能。追加されたのは 2005 以降に追加されたネイティブのモードに対応するそうである。どんなモードなんじゃ?というのは勉強不足。

詳細
http://msdn.microsoft.com/ja-jp/library/ms130978.aspx

こういうブログを書いておいてナンだが、私はAccess自体あまり好きではない。しかし、ツールの依頼はAccessが多いし、ツールによってはExcelよりAccessの方がコード量を減らせるので、最近重宝している。

Accessで作成されたツールのメンテも受けるが、便利であるがゆえに、ひどいシステムが多い。何もAccessに限ったことではない。ExcelでもVBでもよく見かける。

しばらく放っておいたら鎮火してしまっていたが、やはり「真っ当なプログラミング」を指南する必要性はあり、その情報の発信量が少なすぎる、ということなのだろう。その必要性を改めて痛感した。
今の仕事を利用し、一気に公開する資料の量を増やせないかと考えている。