なかなか本業は、、、ズレこむわけです
前エントリに書いたGWTのお勉強もほどほどに、
管理系(主に相談係りですが^^;)、保守のお仕事が少々お忙しくなってきた今日この頃
GWTの構造がWicketに近いということが分かっただけでも拾い物かw
ちゅうことで、また、武器を持たずに戦います><
でも、でもね。
このごろ大分見えてきた内容もあるっちゃぁあるので
勉強にはなってきてる。
ID統合システムやSSOなんてこれまでアプリ実装側としては
お客様がんばれ!な立場をとっていましたが、他人事ではすまされなくなって
まいりました。それもソリューションなんだよ!とw
日々の精進の甲斐もあり、先日お客様先に別の提案でお邪魔しましたが、
先方からの資料にID統合システムが入っており、おぉーこれは、ということで
意気揚々と説明しましたよ
日々精進あるのみぜよ!
武器を持たない戦場へ
武器を持たずに戦場で戦えるか?
でも、気概でなんとかしないといけないこともある
ま、何を言ってるか分からないだろうが、
武器(スキル)の合わないお仕事を任されても
リーマンエンジニアな自分には
やらないといけないもんなのさ
さてさて、頑張りますか!
前職の亡くなられた専務がよく言ってたな
『インフラ知識は、どんなにITが進化しても
重要だから金払ってでもやっておけ!!』
『やるんだったら、プロとして筋を通せ!』
今になって背中を押してくれているような気がする。。。
新年明けましておめでとう御座います
新年明けましておめでとう御座います。
正月は、これといって帰省等のイベントもなく、家族3人和気藹々と
家ですごしておりましたが、、、、
昨年末からの咳が正月明けてから、少々ヒドくなり
横で寝ている家内にも迷惑かけはじめたので
新年早々近所の病院で診察してもらいました。
熱もなかったので、診察結果は、風邪!
いくつか薬を処方されましたので
現在投薬治療中です><
娘は、アレルギーの薬を飲んでいたり、年末に家内も
気管支炎をやって薬を飲んでいたのですが、、、
私のが種類が多く
『父ちゃんのが一番多いwww』
って、、、数の勝負で負けたようです。
薬飲み始めて大分よくなりましたが、
ちゃんと飲みきって元気になるんだwww
新年早々マスクで出勤しているBlackyManなのでした^^;
CreateTableの罠
今、検証環境として、PostgreSQL8.4を利用しています。
当然RDBとして利用している訳なので、以下のようなサンプルテーブルをCreateしてみた
CREATE TABLE company_master ・・・
select * from cmpany_master
なぁんて、書いてサンプルプログラム動いてたのよ
いろいろとMTGを重ねた上で_masterってうざくね><
と感じ、いきようようと
CREATE TABLE COMPANY ・・・
と書き直し、iBatis側も
select * from COMPANY
とか変更したわけよ。。。
- Cause: org.postgresql.util.PSQLException: ERROR: リレーション"company"は存在しません
Position: 198
おぃおぃ、さっきまで動いてたじゃないのよ、
何よこのはじきよう><
(再起動までして確認してもだめ・・・)
と、あきらめながら、数日後、冷静になって
psqlとかpgadminとか付属のツールでSQLを実行しても
ERROR: リレーション"company"は存在しません
SQLステート:42P01
文字:15
ありゃりゃ、SELECT文でCOMPANYなのに実行結果でcompany。。。
あ、もしかしてSELECT文で大文字で指定しても小文字に判定される、、、
ちゅうことで
create table company・・・
で作りなおしてみたわけよ。。。
動くじゃないの><
なるほど、大文字・小文字も気をつけないといけないのね。
当たり前なのね。。。orz
ちゅうことで、カラムも小文字に再定義しなおして
Create実行することで解決しました。
Windows環境だけかもしれませんが、PostgreSQL環境で
今後はじめられる皆様、お気をつけ下さい
『CreateTable文は、小・文・字で!!!』
業務に関係ないけど、はまったので^^;
こんな内容でつまづいてサーセン><
続・CreateTableの罠
エントリ書いたら、よろず相談なid:tagui99さんから
ありがたい情報頂いた。
以下の通りですw
[15:44:03] tagui99: windows版のpostgresql
postgres=# select version();
version
- -
PostgreSQL 8.4.1, compiled by Visual C++ build 1400, 32-bit
postgres=# create table TEST(d_id integer, name char(10));
CREATE TABLEpostgres=# \d
リレーションの一覧
スキーマ | 名前 | 型 | 所有者
- -
public | test | table | postgres
(1 行)小文字で作られている。
postgres=# select * from test;
d_id | name
- -
(0 行)
postgres=# select * from "TEST";
d_id | name
- -
(0 行)
postgres=# select * from "TEST";
ERROR: リレーション"TEST"は存在しません
行 1: select * from "TEST";" で囲むと大文字、小文字が意味をなす。
囲まなければ、暗黙で小文字変換。
[15:44:25] tagui99: 結果が違う><
[15:47:25] tagui99: 大文字のテーブルつくりたければ、" で囲むと出来る。postgres=# create table "MASTER"(i_id integer);
CREATE TABLE
postgres=# \d
リレーションの一覧
スキーマ | 名前 | 型 | 所有者
- -
public | MASTER | table | postgres
public | test | table | postgresMASTER と大文字になっていることが分かる。
[15:51:15] tagui99: これでつくると、アクセス時は、" で囲まないとアクセスできない。。小文字になっちゃうから。。変換されて
[15:51:19] tagui99: postgres=# select * from MASTER;
ERROR: リレーション"master"は存在しません
行 1: select * from MASTER;
^
postgres=# select * from master;
ERROR: リレーション"master"は存在しません
行 1: select * from master;
^
postgres=# select * from "MASTER";
i_id
- -
(0 行)
[16:15:21] こげっち(BlackyMan): ダブルクォーテーションかぁ、なるほど
[16:15:29] こげっち(BlackyMan): 情報アザースw
ということで、Windows版のPostgreSQLで大文字のテーブル名を使いたいときは
『"(ダブルクォート)』で囲むといいらすぃ
また、1つ勉強になりましたwww
なので、こちらで情報共有w
やっぱ、エンジニアとしてこのくらい調べないとね^^;
日々精進です><
id:tagui99さん、情報有難う御座いました
追伸:
Windows、Linux関係なく、Postgre君の仕様らしぃ^^;; 前パッケージソフトの移行話しの際にEDB担当者と調べてたけど。
とのことらすぃ。。。
formのinputの必須チェックを回避するの巻
そんなことも知らずにWicket-jaを語るな!と怒られそうですが、
業務でやっていなかったということでお許しをwww
FormのInputで必須項目があった場合に
Form form = new Form("form");
add(form);TextField addressField = new TextField("address", new PropertyModel(this, "address"));
addressField.setRequired(true);
form.add(addressField);TextField zipField = new TextField("zip", new PropertyModel(this, "zip"));
zipField.setRequired(true);
form.add(zipField);
って実装しますよね。
でも、このFormでzipFieldの値を利用した郵便番号検索をしたい場合に
更新時の必須項目addressFieldは、必須ではない。
そういった場合に、郵便番号検索のボタンに
zipButton = new Button("zipButton") {
private static final long serialVersionUID = -6563042577556478557L;
public void onSubmit() {
//郵便番号検索処理
}
};
zipButton.setDefaultFormProcessing(false);
form.add(zipButton);
とすることで、他のボタンの時のように必須チェック等を行わなくなる。
ただし、その場合に、このボタン押下時にPropertyModelを使っている場合に
ローカル変数zipには、値が入ってこないので注意が必要です。
ふぅ〜、このケースに気づかず画面動かしてからアタフタしたのは内緒^^;