2009/08/27

MySqlでASCIIに文字化け

connectした後に

mysql_query('set names utf8');

を実行しましょう。

2009/08/26

TortoiseSVNの設定 「接続が突然閉じました」エラー

設定→ネットワーク→SSHクライアントの欄に、以前は、

(TortoisePlink.exeのフルパス) -C -l (ログイン名) -i (*.ppk 秘密鍵のパス)を入力。

と設定していたが、「接続が突然閉じました」エラーが再度発生したので、

(TortoisePlink.exeのフルパス) -ssh -l (ログイン名) -i (ppkのパス)

と設定を変更しました。

うーん、未だに原因は不明だが、とりあえず、これで接続が出来るようになりました。

2009/08/21

TortoiseSVNの設定 「接続が突然閉じました」エラー

「接続が突然閉じました」エラーにハマッたのでメモ

TortoiseSVNの設定で、「ネットワーク」-「SSH」を選択して「SSHクライアント」の欄に
(TortoisePlink.exeのフルパス) -C -l (ログイン名) -i (*.ppk 秘密鍵のパス)を入力。

これで、TortoiseSVNからチェックアウトを押下したら「接続が突然閉じました」のエラーメッセージ
Puttyの「セッション一覧」の中にある、「標準の設定」にIPや、ホスト名、ポート番号が設定されていたことが原因
これを、削除して再度、保存し、TortoiseSVNからチェックアウトで無事チェックアウト

いやーハマッた…

Puttyでデフォルトの文字コード

Puttyではデフォルトの文字コードEUC-JPになっているため、Puttyでコマンドを叩くと文字化けを頻繁に引き起こします。
これは、サーバーから返却される文字がUTF-8に設定されているからです。
よって、Puttyのデフォルトの文字コードUTF-8に設定してあげると上記の問題は解決します。

では、、解決方法です。(Puttyごった煮版を使用を前提で記載します。)

①起動時のダイアログ画面で左のカテゴリツリーの中からウィンドウ->変換を選択

②文字コードの設定->文字コードのプルダウンから「UTF-8」を選択

③左のカテゴリツリーでセッションを選択

④セッション一覧とあるラベルのすぐ下にあるテキストボックスに「Default Settings」と入力して保存ボタン押下

保存しているセッション毎に保存ボタンを押下すると、次回からは「UTF-8」でのアクセスになります。

2009/04/16

SQLServerで、インジェクション対策や、エスケープ処理

SQLServerで、インジェクション対策や、エスケープ処理を行うのにParameters.Add( sqlStr )が
使いづらいので下記のメソッドを作成しました。
※ネタ元は、右記のURLです。http://msdn.microsoft.com/ja-jp/library/aa302392.aspx



        private string escape( string param)
        {
            string str = param;
            str  = str .Replace( "'", "''" );
            str  = str.Replace( "[", "[[]" );
            str  = str.Replace( "%", "[%]" );
            str  = str.Replace( "_", "[_]" );
            return s;
        }

2009/04/15

アプリケーションの終了

C#でApplication.Exit() を実行しても、その後の処理が行われる事にビックリしている人は多いのではないでしょうか?

その後の処理を実行されなくするには、下記を実行します。

Environment.Exit(0);

※(0)は戻り値です。任意で設定可能です。
 よくあるパターンでは、0は正常終了、1は○○エラー、2は■■エラーという様に分岐させたりします。

2009/04/06

二重起動の無効化

Program.csふぁいるに下記を追記します。


        ///
        /// アプリケーションのメイン エントリ ポイントです。
        ///
        [STAThread]
        static void Main()
        {
            const string MUTEX_NAME = "MutexApplication";

            // Mutex インスタンスを生成します。二番目の引数 MUTEX_NAME は生成する Mutex の識別名です。
            System.Threading.Mutex mutex = new System.Threading.Mutex( false, MUTEX_NAME );

            // WaitOne メソッドを使って、所有権を得ます。
            // 最初の引数で 0 ミリ秒を指定して、所有権が取得できなくても待ちません。
            if ( mutex.WaitOne( 0, false ) )
            {
                // 下記の色付のコードはデフォルトで記入されているコードです。
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault( false );
                Application.Run( new Form1() );

                mutex.ReleaseMutex();
            }
            else
            {
                // WaitOne メソッドで所有権を取得できなかった場合の処理です。
                MessageBox.Show( "アプリケーションは既に起動しています。", "タイトル");

            }

            mutex.Close();
        }