ご注意ください

  • 当ブログのコメントやトラックバックに、アカウントハックサイトや、そのようなサイトへリダイレクト(転送)される可能性が高いサイトへのリンクが時々貼られているようです。
    そのようなサイトへのリンクが貼られたコメント・トラックバックは、見つけ次第削除・禁止ワード登録していますが、今後も危険なサイトへのリンクが貼られる可能性がありますので、安易にリンク先へ飛ばないよう充分ご注意ください。

オンラインゲーム関連

著作権表示

  • 当ブログに記載されている
    会社名・製品名・システム名などは、
    各社の登録商標、もしくは商標です。

    当ブログ上の文章・写真・画像の
    無断転載、無断転用、直リンクなどは
    行わないでください。

    (C) 1998-2016 Vertex.
    (C) 2002-2016 SQUARE ENIX CO., LTD.
    (C) CAPCOM CO., LTD. 2007, 2016

    All Rights Reserved.
無料ブログはココログ

« 2008年6月 | トップページ | 2008年8月 »

[Java] ORA-01861エラー

ネイティブクエリを使ってOracleにアクセスしていたところ、開発環境では正常に動いていたのに、本番環境(サーバ機)で動かしたらORA-01861エラーが発生。

エラーメッセージによると、比較しようとしている型がマッチしていないとのこと。開発環境と本番環境でSQLは全く一緒なのに、なんでこんなエラーが出るんだろう。試しにSQL Plusで全く同じSQLを叩いてみても、エラーなく結果が表示されるのに。

ということで、DBのテーブルとSQLをにらめっこさせてみたところ、なんとなく引っかかったのが以下の部分。

where update_date < '2008-04-01'

update_dateはdate型だけど、'2008-04-01'って、この書き方だとstring型だから、date型とstring型の比較はできないよ!って言われているような雰囲気。

そこで、以下のように修正してみる。

where update_date < TO_DATE('2008-04-01','yyyy-mm-dd')

すると、エラーも消えて問題なく通るように。

Oracleは開発環境も本番環境も同じものを見ているし、違うのはglassfishのバージョンとJavaのバージョンくらい。ということで、開発環境に入っているglassfishかJavaのバージョン(本番環境よりやや新しいバージョン)では、暗黙の型変換をしてくれていた模様。

JPQLではこの辺の型変換をやってくれるので気にしていませんでしたが、ネイティブクエリでは全て自分で面倒を見ないといけないので、比較するときの型はきちんと合わせるべきでした。

絶対また同じミスをやりそうなので、忘れないうちにメモメモ(笑)

[Java] クライアントでタイムアウト処理

Webアプリケーションを作っていて、何かとお世話になるのがタイムアウト処理。サーバ側でセッション情報から判断してタイムアウトさせたりするのは簡単ですが、もしJavaScriptがサーバ側に値を取りに行ったら・・・。

今作っているシステムでその状況になると、サーバ側ではタイムアウト処理ができず、しかも取りに行った値の情報はなくなっているので、画面にはExceptionエラー画面が表示されてしまいました。これはマズイ。

ということで、JavaScriptでタイムアウトを検知できないか試行錯誤した結果、何とか問題なく動くようになったので備忘録としてメモメモ。

まず、フォーム側にゲッターさんを用意。このゲッターさんがタイムアウト時間とタイムアウト用ページのURLを渡すようにします。こうすることで、サーバ側のタイムアウト時間と合わせることができるのと、システムプロパティでタイムアウト用ページを切り替えられるから。

例:MainPageForm.java
public int getTimeoutMilliSec() {
    HttpServletRequest req = Utility.getRequest();
    HttpSession ses = req.getSession();
    return ses.getMaxInactiveInterval() * 1000;
}
public String getTimeoutUrl() {
    return this.timeoutUrl;
}


次に、JavaScriptでタイムアウト用の関数を作成。

例:mainpage.jsp
var timeoutSec = "<h:outputText value="#{formMainpage.timeoutMilliSec}" />";
var timeoutURL = "<h:outputText value="#{formMainpage.timeoutUrl}" />";
var accessTime = new Date();

function chkTimeout() {
    var diff = new Date() - accessTime;
    if (diff > timeoutSec) {
        location.href = timeoutURL;
        return (true);
    }
    return (false);
}


で、後はonClickイベントでこの関数を呼ぶか、各関数の一番最初にこのタイムアウト用関数を呼んで、戻り値がfalseのときだけ処理をするようにしてあげて、タイムアウト処理ができるようになりました。

もっと楽な方法とか、もっとイイ方法があるかもしれませんが、とりあえずこれでもできました、ということで。

タイムアウト時間やURLをJSPにべた書きしてもいいなら、フォームにゲッターさんを用意する必要もなく、もっとシンプルになります。

Excelの条件式

普段あまりExcelを使わないので、どうしても忘れてしまう条件式。プログラミングが終わってテストなどをするときに、Excelで試験数や障害数などを管理しているので、何かと便利な条件式を使わない手はない、ということで、備忘録がてらメモメモ。

セルC2に入力があったらセルC3の数字と計算をし、入力がなければゼロを表示する場合。セルに入力されるのは数字という前提。
=IF( COUNTA(C2) > 0, C2+C3, 0 )

セルC3からC2の数字を引き、結果が0より大きかったらメッセージを出力する場合。
=IF( C3-C2 > 0, "障害が残っています", "" )

ということで、ExcelのIF文は、
=IF( 条件式, 条件がTrueの場合, 条件がFalseの場合 )
というように書けばよい。

大したことではないけれど、これひとつ使えるだけで結構凝ったシートが作れるかも。

ゲンコツする方も痛いですよ

『ゲンコツはなぁ、された方も痛いけど、した方だって痛いんだよ!』

・・・と言っていたのは、中学のときの担任。悪いことをした人にはゲンコツが飛んでくるし、あまりにひどい場合はクラス全員の前で殴ることもあったけど、生徒は自分が悪いことをした自覚があるから、誰も文句を言わなかった。怖い先生だ、というくらいで。

でも今は違うらしい。

悪いことをした人にゲンコツをしても、行き過ぎた指導なんだそうな。謝罪しないといけないんだそうな。ニュースにされちゃうんだそうな。

体罰と教育の区別もつかない生徒と、その親がいるから、こんなことで謝罪しないといけない先生方もかわいそうだなぁ。

行き過ぎなのはゲンコツ先生ではなく、こんなことを不祥事とする過保護さなんじゃないかな。


------ 以下、Yahoo!ニュースより ------

遅刻83人にゲンコツ、宇和島の中学教諭…行き過ぎと謝罪

 愛媛県宇和島市の市立中学校の男性教諭(41)が、学年集会に遅刻した2年生の男女83人全員の頭をゲンコツで殴っていたことがわかった。うち生徒7人の頭にコブができ、男性教諭は「行き過ぎた指導だった」と、保護者らに謝罪したという。

 学校側によると、男性教諭は今月3日、2年生の生活態度について指導するための学年集会で、生徒が集合時間に7分遅れたことに腹を立て、全員を正座させたうえ、一人ずつ順番に殴ったという。ほかの教諭6人が制止しようとしたが、止められなかったという。

 同中学の校長は「情熱的な指導の教諭だが、生徒に痛い思いをさせてしまい申し訳ない。再発防止に努めたい」と話している。

http://headlines.yahoo.co.jp/hl?a=20080711-00000016-yom-soci

[DS] ひぐらしのなく頃に 絆

先月下旬に発売された、ニンテンドーDS用のゲーム『ひぐらしのなく頃に 絆』を、数日前に相方が買ってきてプレイし始めました。

原作とかPS2版の祭と同じストーリーに、いくつか新しい話を追加したものらしいですが、どうやら4部作になっているとか。その第1部が今回発売したものとのこと。

一応ときどきプレイしているところを覗き見していましたが、基本的なところはPS2版とあまり差がないみたい。グラフィックが使いまわしっぽくてやや雑な感じがするかな、くらい。

今回はストーリーの分岐点がわかりにくいらしく、なんだかんだと文句を言いながらやっていますが、新しく追加された話が気になるところ。はやく新しい話のところまで進めてくれ、相方よ(笑)

しかし、今回発売された第1部だけだとバッドエンディングしかないらしいとどこかで見かけたけど、解決編が入っていない以上は仕方ないのかなぁ。

ひぐらしは、まだまだ勢いが衰えないようで。

でもできれば、全てが新しいストーリーのひぐらしをやってみたいような気もします。別次元でのアナザーストーリーとかにしない限り、完全な新作は無理なんだろうけど。

« 2008年6月 | トップページ | 2008年8月 »

フォト
2017年5月
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

最近のトラックバック