投稿

1月, 2010の投稿を表示しています

MySQLのDELETE

調べるまでもなく...DELETE文だということは想像できる。 しかし、 DELETE table_name WHERE pk = 1 これはダメ。 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near... DELETE FROM table_name WHERE pk = 1 FROMがしっかり入っていないと弾かれてしまう。 SQLServerではFROMがなくてもいきなり削除できるのだが、 MySQLはどうもこういう部分は厳密に書かないといけないようだ。

世界に一つだけのメモ

The PocketMod [http://www.pocketmod.com/] A4コピー用紙を使ってオリジナルのメモを作ることができる。 画面右上の Create a PocketMod をクリック。 そのあとはHelpを見ればわかるのだが... 1.Widgetsから用紙を選択(カバーなどは情報を編集できる) 2.選択された用紙を右側にドラッグ&ドロップ 3.Print PocketMod! で印刷 捨ててもいいようなちょっとしたメモ書き用に重宝する。 寄付も受け付けているようだ。

Firefox3.6 リンクを新しいタブで開く

イメージ
最近のFirefoxはタブ関係でいきなり仕様変更がされるようだ。 3.6では新しいタブを開く際に、現在開いているタブのすぐ隣に新しいタブが開くようになった。これはIEに合わせた仕様変更なのかもしれないが、従来の仕様に慣れていると違和感がある。 1.about:config; 2.browser.tabs.insertRalatedAfterCurrent = false (tabs.でインテリセンス ) どちらが使いやすいかはユーザー次第だが、こうやって自分の使いやすいようにすぐにカスタマイズできるのがいいですね。

AJAX.NETのCalendarExtenderのカレンダーを日本語に

日本語にするだけなら…… 配置してある ScriptManager の EnableScriptGlobalization=true に。

MySQLのAUTO_INCREMENT取得

INSERTしながら新しく追加したキーをもとに更新をかけたいというケースはよくあると思う。 INSERT INTO test1 (a1) VALUES ('hoge'); INSERT INTO test2 (key) VALUES (LAST_INSERT_ID()); LAST_INSERT_ID()は直前に自動挿入されたキーを取得する。test1 に自動挿入フィールドがあった場合、挿入されたキーを取得し、それを元に test2 を更新する。

MySQLのtopやらrownumやら特定の行を取得するコマンド

limit 0, 1 SQLServer: top 1 Oracle: rownum = 1

Unable to convert MySQL date/time value to System.DateTime

テーブルに途中から日付型のフィールドを追加したケースにて。 すでに存在するレコードには「0000-00-00 00:00:00」が入ってしまう。これはデフォルト値であり、SQLでSELECT文を発行しても普通に取得できる。 しかしながら、これを.NETからMySQL Connector.NET経由で取得した際には話が違うらしく日付型に変換できずに落ちてしまう。 .NETからは不正なデータに見えるようだ。 無効なレコードが発生しないように注意を払わなければいけない。

MySQLの予約語に注意

SQLコマンドにおいて、列名が予約語とかぶっていないかは基本であるのだが。 phpMyAdminでテーブルを作っていたときに実は予約語を使ってフィールドを作っていた。 普通はすぐに気づきそうなものだが…… SELECT * FROM test このように全フィールドを参照しているとエラーにはならなかった。 しかし、 SELECT show FROM test このように書くとエラーになった。 エラーが発生しているが原因がいまいちつかめないときはフィールド名が予約語とぶつかっていないかチェックしてみるといいかもしれない。普通はすぐに気づくが(笑)。 ちなみに、MySQLの予約語は以下のようなものがある。 すべてではないが。 ADD ALL ALTER ANALYZE AND AS ASC BEFORE BETWEEN BIGINT BINARY BLOB BOTH BY CASCADE CASE CHANGE CHAR CHARACTER CHECK COLLATE COLUMN COLUMNS CONSTRAINT CONVERT CREATE CROSS CURRENT_DATE CURRENT_TIME CURRENT_TIMESTAMP CURRENT_USER DATABASE DATABASES DAY_HOUR DAY_MICROSECOND DAY_MINUTE DAY_SECOND DEC DECIMAL DEFAULT DELAYED DELETE DESC DESCRIBE DISTINCT DISTINCTROW DIV DOUBLE DROP DUAL ELSE ENCLOSED ESCAPED EXISTS EXPLAIN FALSE FIELDS FLOAT FLOAT4 FLOAT8 FOR FORCE FOREIGN FROM FULLTEXT GRANT GROUP HAVING HIGH_PRIORITY HOUR_MICROSECOND HOUR_MINUTE HOUR_SECOND IF IGNORE IN INDEX INFILE INNER INSERT INT INT1 INT2 INT3 INT4 INT8 INTEGER INTERVAL INTO IS JOIN KEY KEYS KILL LEADING LEFT

バーベイタム(verbatim)

文字列を扱う際に、「\」(円マーク, バックスラッシュ)は通常エスケープ文字として使用される。したがって、「\」そのものを使用する際には二つつなげてあげる必要がある。 string s1 = "C:\WINDOWS"; // NG (認識できないエスケープ シーケンスです。) string s2 = "C:\\WINDOWS"; // OK 文字列の前に「@」(アットマーク)を付けてやることで(verbatim文字列)そのまま出力可能。 string s1 = @"C:\WINDOWS"; // OK string s2 = "C:\\WINDOWS"; // OK Console.WriteLine(s1); // C:\WINDOWS Console.WriteLine(s2); // C:\WINDOWS 可読性はこちらの方が良いかもしれないが、好みもあると思う。ただ、覚えておいて損はないと思う。 ちなみにVB.NETでは... Dim s1 As String = "C:\WINDOWS" Dim s2 As String = "C:\\WINDOWS" Console.WriteLine(s1) ' C:\WINDOWS Console.WriteLine(s2) ' C:\\WINDOWS そのまま出力可能。

ASP.NET アクセスが拒否されました

イメージ
ファイルをコピーしてプロジェクトを開いたときにありがちなエラー。 "ASP.NETコンピュータアカウント"にアクセス権を付与する。 コンピュータ名\ASPNET である。 他にも読み取り専用になっていることもあるので解除する。

.NETインデクサによる文字列アクセス

文字列から任意の位置の文字を取り出すことができる。 書き方はまるで配列のようだ。 C# string s = "あいうえお"; Console.WriteLine(s[1]); // 出力: い VB.NET Dim s As String = "あいうえお" Console.WriteLine(s(1)) ' 出力:い 「○文字目を切り出す」とかいうのが簡単にできるのね。

ASP.NETのマスターページでCSSを即適応

マスターページを使用しているページにて、CSSを変更しても反映されていない時がある。これはマスターページをキャッシュしているためだと思われる。 IISのワーカープロセスのインスタンス(aspnet_wp.exe)を再起動すると適応されるはずだ。 このあたり[msdn.microsoft.com] が勉強になる。

Adobe Acrobatその余計なる読み上げ機能

イメージ
PDFファイルを読み込む度に読み上げダイアログが出て非常にうっとうしい。調べてみると、どうやらキャンセルできないらしい。最低だ。 スタートアップ時にこれまた余計なものが起動されてしまうので、それを止める。 どうしてこう昔からAdobeは余計なことばっかりするのかね。 追記 C:\Program Files\Adobe\Reader 9.0\Reader\plug_ins にある accessibility.JPN Accessibility.api を削除するといいらしい。

マウスジェスチャ IE,Chrome,Explorer

イメージ
HandyGesturesも便利だったが、Vista,7,Chromeなどにも幅広く対応している かざぐるマウス[staticflower.net] が一番便利そうだ。すばらしい。

IE8:セキュリティで保護されたWebページコンテンツのみを表示しますか?

イメージ
httpsページは暗号化通信を行っているが、http通信でデータ取得を行うコンテンツが混在している場合にはこんなメッセージが出る(以前から出ていた)。 [ツール]-[インターネットオプション]-[セキュリティ]-[レベルのカスタマイズ]-[その他] 「混在したコンテンツを表示する」を「有効」に。 ただし、暗号通信中に暗号化されていないコンテンツが含まれていても警告を出さない。 これはセキュリティ上のリスクが発生するので、わかっている場合のみ設定すること。

iGoogleの友だち表示を消す

Firefoxの Stylish 用だが。 @namespace url(http://www.w3.org/1999/xhtml); @-moz-document domain("google.co.jp") { #updates_left_nav, #contacts_left_nav, #bottom_nav, #chat_nav, #promo { display:none !important; } } 消すものは以下の通り。  更新情報  友だち  更新情報を投稿したり友だちとゲームを楽しんだりするにはソーシャル ガジェットを追加します。 逆に使っている人がいるのだろうか…!?

GridViewの背景色を動的に変更する

たいていの場合セルの値の条件によって変更すると思う。そのため、「GridViewのRowDataBound」イベントにて行う。当然、値のフィールドのみ対象とする。 // C# if (e.Row.RowType == DataControlRowType.DataRow) { // なんか条件 // 色変更 e.Row.BackColor = System.Drawing.Color.Yellow; } ' VB.NET If e.Row.RowType = DataControlRowType.DataRow Then ' なんか条件 ' 色変更 e.Row.BackColor = Drawing.Color.Yellow End If MSDN

explorerでもマウスジェスチャを

イメージ
ブラウザでマウスジェスチャを使っていると、Windowsのエクスプローラ操作時にもつい同じ感覚でマウスジェスチャをしてしまうことがある。当然そんな機能は無いわけだが、そういう願望を実現してくれるソフトもあるようだ。 HandyGesturesはそのひとつであり、 試しにインストールしてみたら使い勝手が良い。ありがとう。 http://www.vector.co.jp/soft/winnt/util/se372511.html なお、インストールはバッチ処理で自動完了し、再起動等は行わなくてもよいのだが、エクスプローラやIEを開いていた場合は一度全部閉じる必要がある。

GodMode

イメージ
新しいフォルダを作る。 GodMode.{ED7BA470-8E54-465E-825C-99712043E01C} にリネーム。先頭の文字列は何でも良い。 アイコンが変わる。 Windows7もしくはVistaでも可能(64bitではクラッシュの危険あり)。すごく役に立つわけでもないかもしれないが、この手の隠し機能はワクワクしますね。

The server request timed out

イメージ
Sys.WebForms.PageRequestManagerTimeoutException: The server request timed out. ASP.NET AJAXにおいて、処理に時間がかかる場合(サーバからの応答が返ってこなかった場合)にダイアログが出る。サーバ側で処理が正常に行われている場合であっても、レスポンスが返ってこないとこうなってしまう。 ScriptManagerのプロパティを調整する。 最長で10分(600)に設定できるようだ。 この値を変更すればとりあえずダイアログは出ないのだが、 AJAXにおいてこれが出ること自体がおかしいとも言えるかもしれない(処理に時間がかかるものをやるべきではない)。

Visual Studio スペースの表示と非表示

イメージ
ショートカットキーを多用しているときにミスって別のコマンドを押してしまい、不意に出る矢印(→)とドット(・)。これはタブの位置とスペースの位置に表示されるが、はっきり言ってうっとうしい。 [Ctrl-E] → [S] スペース表示/非表示 で解除。

四捨五入(.NET Framework 2.0)

Math.Roundメソッドを使用するのだが、 パラメータに「MidpointRounding.AwayFromZero」を使用する。 // 小数点第一位にて四捨五入 decimal m = Math.Round (1.55, 1, MidpointRounding.MidpointRounding)

Thunderbird3 & Lightning

Thunderbird3にバージョンアップしたところ、それまで使っていたLightningが未対応だった。 スケジュール管理ができて便利だったのだが。 探してみたところ、ベータ版があった。 https://addons.mozilla.org/ja/thunderbird/addon/4623