サーバA
Windows Server 2008 R2 x64
SQL Server 2012 R2 x64
サーバB
Windows Server 2003 R2 x86
Oracle 11g 11.2.0.1.0 x86
サーバAのSQL Serverにリンクサーバーを作成し、サーバBを参照できるようにする方法が分かったので、記しておく。
前提としては、当たり前のように、それぞれのDBが、外部からアクセス可能になっていること。(特にOracle側)
サーバA
Windows Server 2008 R2 x64
SQL Server 2012 R2 x64
サーバB
Windows Server 2003 R2 x86
Oracle 11g 11.2.0.1.0 x86
サーバAのSQL Serverにリンクサーバーを作成し、サーバBを参照できるようにする方法が分かったので、記しておく。
前提としては、当たり前のように、それぞれのDBが、外部からアクセス可能になっていること。(特にOracle側)
Visual C# 2012
.NET Framework 4.5
入力エリアコントロールにあるCausesValidationプロパティはデフォルトではtrue。
そのため、何も意識しなければ、Validating、Validatedイベントは走行し、フォーカスを失った時に入力値を検証し、OKならフォーカス移動させる、NGならフォーカス移動させないということが可能だ。
その動作を利用して、フォームを閉じた時に制御を加えよう。
続きを読むあれができたら便利、これができたら便利、あれができたらなー、これができたらなー
世の中に出回っているアプリを使えばできるものが多いでしょう。
しかし、意外と以下のようなことが往々にしてあります。
- 個人的に使い勝手が好きじゃない。
- 外部アプリケーションからの呼び出しが行えない。
- バックグラウンド動作をさせることができない。
- 使い勝手やライセンスの関係上、客向けに提供できない。
- 複数のアプリを組み合わせないと実現できない。
- 古めかしい文化のせいで、自社開発以外のものを受け入れない。
まぁ、そんなことないかもしれませんが、あるかもしれません。
だから
じゃあ自分で作る
アプリを公開するわけではありませんが、アプリを作る方法をちょこちょこ小出しにしていこうかと思います。
もちろん、自分で作るといっても、OSS(オープンソース)のライブラリやフレームワークを使わないわけではありません。
しかし、極力無償の範囲内で実装する方法論をベースに記します。
金を払ってでも無償よりよっぽどいい!というものも記します。
いっつも忘れるので、サイトを徘徊して見つけるんじゃなくて、ひとまとめにしとこう。
[XDEBUG] zend_extension="D:\php-5.6.5-nts-Win32-VC11-x86\ext\php_xdebug-2.2.7-5.6-vc11-nts.dll" xdebug.remote_enable=on xdebug.remote_handler=dbgp xdebug.remote_host=localhost xdebug.remote_port=9000 xdebug.show_local_vars=1 xdebug.dump_globals=1 xdebug.dump.SERVER=QUERY_STRING, REQUEST_URI xdebug.dump.GET=* xdebug.dump.POST=* ;xdebug.profiler_enable=1 ;xdebug.profiler_output_dir="D:\php-5.6.5-nts-Win32-VC11-x86\tmp" ;xdebug.auto_trace=1 ;xdebug.trace_output_dir="D:\php-5.6.5-nts-Win32-VC11-x86\tmp"
PHPのバージョン、スレッドモードを合わせたxdebugをダウンロードするのが前提で、設定内容は以下の通り。
zend_extension=xdebugのdllが存在するパス xdebug.remote_enable=onでリモートデバッグ xdebug.remote_handler=dbgpで固定 xdebug.remote_host=リモートホスト(ローカル開発は大抵localhost) xdebug.remote_port=9000がデフォルトポート xdebug.show_local_vars=1で変数の表示を行う xdebug.dump_globals=1でグローバル変数の表示を行う xdebug.dump.SERVER=QUERY_STRING, REQUEST_URI $_SEVER["QUERY_STRING"]、$_SERVER["REQUEST_URI"]のみ表示する xdebug.dump.GET=*で$_GETの中身を全部表示する xdebug.dump.POST=*で$_POSTの中身を全部表示する ;xdebug.profiler_enable=1でプロファイルを行う ;xdebug.profiler_output_dir=プロファイルの保存先ディレクトリ ;xdebug.auto_trace=1でトレースを行う ;xdebug.trace_output_dir=トレースの保存先ディレクトリ
たまたま特定アプリケーションで、Ctrl+Alt+Insertを押すと動作する機能があり、それをvmware上で実行すると、Ctrl+Alt+Deleteを送信した動作をしてしまった。
調べたところ、ホットキーを変更することで対応できるようだったので、ホットキーの変更方法を記そう。
まず、仮想OSが起動している場合は、すべてシャットダウンしよう。
そして、ホストOSがWindows 7の場合
C:\Users\ユーザー名\AppData\Roaming\VMware\preferences.ini
を編集する。
preferences.iniをテキストエディタで開き、4行追加する。
pref.hotkey.shift = "true" pref.hotkey.control = "true" pref.hotkey.alt = "true" pref.hotkey.gui = "false"
これで、ホットキーの変更が可能だ。
それぞれの意味合いは以下になる。
pref.hotkey.shift=Shiftキー
pref.hotkey.control=Ctrlキー
pref.hotkey.alt=Altキー
pref.hotkey.gui=Windowsキー(旗のマーク)
trueに設定したものを押すことで、ホストへ制御を戻すことが可能だ。
上記の場合、Shift+Ctrl+Altを押すことで、ホストへ戻る。
さらに、Shift+Ctrl+Alt+Insertを押すことで、ゲストへCtrl+Alt+Deleteを送信する。
標準では上記記述はないが、Ctrl+Altでホストへ制御を戻すことから、以下と同様であると言えるだろう。
pref.hotkey.shift = "false" pref.hotkey.control = "true" pref.hotkey.alt = "true" pref.hotkey.gui = "false"
こうすることで、Shift+Ctrl+Altが押されなければゲストへCtrl+Alt+Deleteを送信することがなくなったので、アプリケーションが提供している機能としてのCtrl+Alt+Insertが動作するようになった。
利用しているとvmdkが肥大化してくるので、パフォーマンスも悪く、バックアップもままならない、そんな状況を完全に打破する方法をやっと確立した。
※ただし、Windowsのみ。
以下、その手順。
コマンドプロンプトを開き、以下のコマンドを実行する。
cipher /w:c:
(c:は、対象のドライブを指定)
しばらく待って、『0xFF に書き込み中』と表示されたらCtrl+Cを連打して中断する。
マイコンピュータを開いておくと、どんどん容量が食っていくので、終了タイミングが分かりやすい。
(これで、未使用領域に0x00を書き込み、未使用であることを明確にする)
あら素敵!
11.は、パフォーマンスを最適化させたい場合にやればよくて、単にvmdkのファイル容量を圧縮させたい場合は、10.までやればいい。
※注意
ディスクデフラグを行うと、一時的にvmdkファイルの容量が増大する為、ホスト側の空き容量に余裕を持っておくこと。