2011年8月2日火曜日

Enterキーを押した時にTabキーを押した時の動作をさせる

private void TextKeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode != Keys.Enter) { return; }
this.ProcessTabKey(!e.Shift);
e.Handled = true;
}

2011年7月11日月曜日

windows7でapacheが起動しない

80番を何かが使っているのでは?

コマンドプロントで「make_sock: could not bind to address 0.0.0.0:80」って返ってきた場合、ポート80が使用されていてApacheが起動できないことを意味しています。

つまりポート80を使用しているプロセスを停止してあげればApacheをスタートすることができる

コマンドプロンプトから「netstat -oan」を打ち込んで実行。

ポートとプロセスの状態が見れるので、「[Loval Address]0.0.0.0:80」 を使用している [PID] を確認します。

タスクマネージャを開きプロセスタブを開きます。

さらに、 「表示」→「列の選択」で、「PID(プロセル ID)(P)」をチェックして表示します。

すると、プロセス一覧にPIDが表示されるので、先ほど確認したPIDを使用しているプロセスを特定し、そのプロセスを停止します。

まあ大抵はSkypeさんが邪魔してると思いますが、知らない名前のプロセスだった場合は自己責任で停止してくださいね。

後はもう一度XAMPPのコントロールパネルからApacheをスタートさせれば起動されるはずです。

ちょっと話が脱線した気がしますがXAMPPの設定は以上です。

あとは「http://localhost/」にアクセスしてXAMPPのページが表示されれば成功です。

SQLS2008R2でリモート接続を有効にする

スタート > すべてのプログラム > Microsoft SQL Server 2008 R2 > 構成ツール > SQL Server 構成マネージャー

を開いて

SQL Server ネットワークの構成 > MSSQLSERVERのプロトコル
の右ペインで

共有メモリ 有効
TCP/IP 有効

にする

2011年6月16日木曜日

T-SQL:Replace関数で大文字小文字を区別

T-SQL:Replace関数で大文字小文字を区別(COLLATE句の指定方法)

SQL-Server2000をデフォルトの照合順序でインストールすると
Japanese_CI_AS つまり大文字小文字区別なしアクセント区別ありと
なっていることと思います。
※Windows照合順序に左右されるのかな?
今回私が試している環境は上記の状態です。

この状態でReplace関数を使用すると、次のような結果になります。

Select Replace('DbCd','D', 'a')
 ↓
'abCa'
大文字小文字の区別なしに'D'と'd'が'a'に変換される


この関数上でのみ大文字小文字を区別させるには、使用する文字列自体に照合順序を指定します。

Select Replace('DbCd' collate Japanese_CS_AS,'D', 'a')
 ↓
'abCd'
大文字小文字を区別して'D'のみが'a'に変換される


ちなみに上記指定では変換元の文字列に対して指定していますが
検索文字、置換文字のいずれに指定しても同様の結果が得られるようです。

Select Replace('DbCd','D', 'a' collate Japanese_CS_AS)
 ↓
'abCd'

Select Replace('DbCd','D' collate Japanese_CS_AS, 'a')
 ↓
'abCd'


最初、ヘルプを読んだ際に指定方法がわからず、下記の指定をしてしまっていたのですが、これでは変換後の文字に対して指定しているのでまったく意味を為していなかったんですね。

Select Replace('DbCd','D', 'a') collate Japanese_CS_AS
 ↓
'abCa'


ということで、照合順序の指定方法、COLLATE句がどこにかかるのかを間違えないようにしましょう。

2011年5月23日月曜日

Windows 7, Vista のPCの共有フォルダに、ルータを超えて接続する

Windows 7, Vista でルータを超えて(サブネットの異なる)パソコン同士でファイル共有(パスワード保護共有)を行うには、Windows ファイアウォールで「Netlogon サービス」を例外に追加する必要があるようです。

コントロール パネル > Windows ファイアウォール
画面の左上の「Windows ファイアウォールを介したプログラムまたは機能を許可する」をクリック
「設定の変更」ボタンをクリックする
「許可されたプログラムおよび機能」欄の「Netlogon サービス」の「ホーム/社内(プライベート)」欄をチェック

2011年3月9日水曜日

C# 細かい条件を指定してプログラムを起動する

// ProcessStartInfo の新しいインスタンスを生成する
System.Diagnostics.ProcessStartInfo hPsInfo = (
new System.Diagnostics.ProcessStartInfo()
);

// 起動するアプリケーションを設定する
hPsInfo.FileName = "Notepad";

// コマンドライン引数を設定する
hPsInfo.Arguments = @"C:\Hoge.txt";

// 新しいウィンドウを作成するかどうかを設定する (初期値 false)
hPsInfo.CreateNoWindow = true;

// シェルを使用するかどうか設定する (初期値 true)
hPsInfo.UseShellExecute = false;

// 起動できなかった時にエラーダイアログを表示するかどうかを設定する (初期値 false)
hPsInfo.ErrorDialog = true;

// エラーダイアログを表示するのに必要な親ハンドルを設定する
hPsInfo.ErrorDialogParentHandle = this.Handle;

// アプリケーションを起動する時の動詞を設定する
hPsInfo.Verb = "Open";

// 起動ディレクトリを設定する
hPsInfo.WorkingDirectory = @"C:\Hoge\";

// 起動時のウィンドウの状態を設定する
hPsInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal; //通常
hPsInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; //非表示
hPsInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Minimized; //最小化
hPsInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Maximized; //最大化

// ProcessStartInfo を指定して起動する
System.Diagnostics.Process.Start(hPsInfo);

2011年3月8日火曜日

C# ファイルのパスを調べる関係

if (File.Exists(filePath)) {
// filePathのファイルは存在する
} else {
// filePathのファイルは存在しない
}

if (Directory.Exists(dirPath)) {
// dirPathのディレクトリは存在する
} else {
// dirPathのディレクトリは存在しない
}

//ファイルのサイズを取得
System.IO.FileInfo fi = new System.IO.FileInfo(@"C:\test.txt");
long filesize = fi.Length;



// パスを定数で定義する
const string FILE_PATH = @"C:\Hoge.txt";

// 作成日時を取得する
DateTime dtCreate = System.IO.File.GetCreationTime(FILE_PATH);

// 更新日時を取得する
DateTime dtUpdate = System.IO.File.GetLastWriteTime(FILE_PATH);

// アクセス日時を取得する
DateTime dtAccess = System.IO.File.GetLastAccessTime(FILE_PATH);

// 取得したタイムスタンプを表示する
MessageBox.Show("作成日時 : " + dtCreate.ToString());
MessageBox.Show("更新日時 : " + dtUpdate.ToString());
MessageBox.Show("アクセス日時 : " + dtAccess.ToString());

2011年1月27日木曜日

SQLサーバのストアド何とかをC#で書く!!!!!

SQL CLRってのを使います


1. SQLサーバーのセキュリティ設定の変更

sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'clr enabled', 1;
GO
RECONFIGURE;
GO

/* 2005ではGUIのメニューがあったが、なぜか2008では見当たらない */

/*
clr enabled オプションを 0 に設定することにより、CLR 統合を無効にできます。
CLR 統合を無効にすると、SQL Server ではすべての CLR ルーチンの実行が停止され、
すべてのアプリケーション ドメインがアンロードされます。
*/



2. VS2008で、SQL CLR
「新しいプロジェクト」⇒
(プロジェクトの種類):他の言語/データベース
(テンプレート):SQL Serverプロジェクト

接続するDBを聞かれるので、選択する⇒
セキュリティのナントカの質問がイパーイ出るが、全て禿同



3. プロシージャを書く!!
「プロジェクト」⇒「ストアドプロシージャの追加」⇒ プロシージャを書く!!



4. ビルドすると、DBにストアドプロシージャが出来ている!!!!!!

http://www.atmarkit.co.jp/fdb/rensai/sqls05try05/sqls05try05_1.html
http://www.atmarkit.co.jp/fdb/rensai/sqls05try06/sqls05try06_1.html

2011年1月19日水曜日

C#で多次元配列を宣言する

string[,] nengo = new string[,]{{"明治","明","M"},{"大正","大","T"},{"昭和","昭","S"},{"平成","平","H"} };