XEAD DriverのDBにExecuteQueryで接続Windows7編

XEAD DriverのサンプルシステムのDBを参照するためにExecuteQueryを使うと便利です。
サンプルシステムのDBはApacheDerbyで、隠しフォルダの中にあります。
WindowsXPでは、C:\Documents and Settings\(ユーザーアカウント名)\Application Data
Windows7では、C:\Users\(ユーザーアカウント名)\AppData\Roaming
ExecuteQueryのWebサイト http://executequery.org/
現在のバージョン Execute Query v4.1.0 Build 5326 (29 July 2013)

次はWindows7での設定例、ユーザアカウント名は「user」です。


XEAD DriverのサンプルDBへ接続

Database Driver設定
[Driver Name] Derby 
[Description] 空白 
[Database] Apache Derby 
[JDBC URL] jdbc:derby://localhost:1527/Sample 
[Path] C:\Program Files\Sun\JavaDB\lib\derbyclient.jar 
[Class Name] org.apache.derby.jdbc.ClientDriver 

Connection設定
[Connection Name] DerbyNet 
[User Name] FXUSER 
[Password] FXTEST 
[Host Name] localhost 
[Port] 1527 
[Data Source] Sample 
[JDBC URL] jdbc:derby://localhost:1527/C:\Users\user\AppData\Roaming\Xead\Sample\db\Sample\db
[JDBC Driver] Derby 

Salesforce.comを利用するために

Salesforce.comを使用する機会を得たので、書籍を取り寄せたり、
ネット上で検索したり、youtubeの動画を視聴したり、
Salesforceの情報は多すぎて手がかりが掴みにくいという印象がある。

直近の情報で参考になったWebサイトをメモ。

1.開発者が疑問に思うことが挙げられています。
Salesforceを導入して「これを先にやっておけば・・・」と後悔したポイント3つ(2013年04月30日)
http://www.skyarc.co.jp/column/communication/20130430.html

手順どおりに作業すれば、こんなアプリができます的な記事ではなく、実務に即した情報が得られます。
システムを構築する上で当たり前のことだが、なかなかたどり着けないノウハウってありますよね。


2.具体的な開発環境の構築とアプリケーションのデプロイ方法。
Force.comプラットフォームでの開発サンプル (2013/04/22)
http://codezine.jp/article/detail/7072

アプリケーションの画面遷移やデータモデルも図指され親切。
開発環境の構築も、簡潔でわかりやすい。


3.Visualforceを使う(itproへのログオンが必要)
http://itpro.nikkeibp.co.jp/article/COLUMN/20091201/341290/

Hello World




4.開発環境が動き出したら、ここで全体像がつかみましょう。
Force.com開発マニュアル(itproへのログオンが必要)
http://itpro.nikkeibp.co.jp/article/COLUMN/20090818/335652/?ST=cloud


5.データモデルを確認。
Standard Objectsのデータモデル
http://www.salesforce.com/us/developer/docs/api/index.htm
URLを開いて、Reference -> Data Model


ビブリオバトル 原稿

第23回 関西IT勉強宴会 2013-05-24は「ビブリオバトル

残念ながら、不参加となりましたので、プレゼン予定だった原稿を発表します。

私が紹介する本は、「打たれ強い心をつくる 空海のコトバ」です。

この本を購入したきっかけは、今年の東北地方太平洋沖地震の2周年を前に、
新聞の広告で目にとめました。

今年3月15日発行の本です。 著者は、植西聰(あきら)(産業カウンセラーの方です)


空海についてお話したいと思います。

空海は、真言宗の開祖です。三筆としても有名です。

遣唐使で804年に 遣唐使の一員として、唐に渡りました。
当時の航海は命がけです。空海は20年の予定の滞在を2年で帰国しました。


遣唐使の目的は、ウィキペディから引用すると
「海外情勢や中国の先進的な技術や仏教の経典等の収集が目的とされた。
旧唐書には、日本の使節が、中国の皇帝から下賜された数々の宝物を市井(しせい)で全て売って金に替え、代わりに膨大な書物を買い込んで帰国していったと言う話が残されている」

空海が残した業績としては
お寺の伽藍の建設する土木・建築工学・基礎工学
曼荼羅、仏像、法具等の美術、作成方法
香川県満濃池の改修
教育、京都の東寺にある私立の教育施設「綜芸種智院」を開設しました。
調べ上げたらきりがないでしょう。

遣唐使は630〜894年まで続きました。
遣唐使は200年以上にわたり、当時の先進国であった唐の文化や制度、そして仏教の日本への伝播に大いに貢献しました。

現在のように通信回線で世界中がつながっていない時代における、
最新の情報産業と考えれば、われわれIT技術者と同じ業種と言えます。

空海は61歳で没、入定(にゅうじょう)とされていますがその人生は波乱に満ちたものでありました。
空海は、修行をし、苦悩に絶え、多くの名言を残しました。
現在でも、力強く人生を送った姿が、ひろく日本で弘法さんとして親しまれています。


人生には誰しも苦難が付きまといます。
自分ではどうしようもない事故や、災害、時代の波に飲み込まれてしまうことが起こります。
人とのかかわりや自分自身の未熟さで思うようにいかないことのほうが多いです。
失恋や友人・肉親との別れで心に大きな穴が開いてしまうことも避けられません。

堂々巡りのマイナス思考になってしまうことも仕方のないことですが、
生きている以上、人生どこかで立ち直らなければなりません。

この本の「キャッチ」に「つかみどころのない精神論やきれいごとを空海は言わない。」と書かれています。

生き方や考え方は、人それぞれですが、プラス思考で生きていけるように意識したいものです。
自分を追い詰めるのは自分、後悔は悪いことではないが、考えすぎは苦しみのもと。

一生懸命がんばっているのにうまくいかなかったり、苦しみから抜け出せずにもがいている時。
「言葉」が救いを与えてくれることがあります。
怒りやイライラに心を乱されているとき「言葉」が安らぎを与えてくれるときがあります。
これからどう生きていけばいいかわからず、心が折れそうなとき「言葉」が方向性を示してくれるときがあります。

言葉は「人生のサプリメント」、
デスマーチや心が折れそうなとき、 技術者も人ですから、先人の教えに耳を傾けてみましょう。


IT技術者も、スポーツ選手のようにメンタル面を強化することが必要です。
この本をよんでいただき、皆さんの心が打たれ強くなることを願います。

モデリングいろいろ

スケッチアップを知った。
google Sketchup恐るべし。

すごい、軽い、無料
高価な3DCADがかすんでしまう。

今までの設計はボタンの掛け違い?
当然、Sketchupが存在しなければ叶わなかったことだ。

JWCADの平面図をインポートして3Dのパース図を簡単に書けてしまう。

ゲーム感覚で3D設計すれば、平面図、側面図は正確な寸法線もあわせて
自動生成される。

これまでの設計方法が間違いだったのではないかと思うほどの技術革新。

3Dでの設計をモデリングと呼んでいるようだ。

これまでの方法では、立体をイメージし三角法で平面図、側面図を描く。
立体に修正があれば、関連する部分をさまざまに修正しなければならない。

このような画面が軽々編集できます。拡大・縮小も自由自在。

Sketchupに興味があるかたはこちらが参考になります。ご覧ください。

SketchUp 3D - デモ
http://www.sketchupjapan.com/video.php

データベースもモデリングといった意識がなければ、
テーブルが変わればコードを修正を繰り返す。

コードを書く前にモデルを検討しよう。

データモデルができれば、画面などの機能は自動生成できる。

そんな意味でXEAD Driverは、google Sketchupと共通するところがある。

データモデルは今のところ2次元での表現しかされていないが、
3次元で関連が見通せたら面白い。誰もやっていないしね。

実際の実務は、時間軸をも検討しなければならない多次元の事象のように思う。

Execute Query(DBメンテツール)で oracle9

DB移行時に重宝するExecute Query
以前にも紹介した
http://d.hatena.ne.jp/kurokouji39/20101109/1289269041


少し、前のバージョンですが今回oracle9に接続する必要があり、成功したので記録する。
詳細な情報はなく結果オーライなので保障はできかねますが、参考になれば幸いです。

jdbcoracle接続には、OCI Driverを用いた方法とThin Driverを使う方法があるらしい。
今回は、Thin Driverを使う方法で接続した。


ConnectionとDriverの設定がわかりにくいので、以下に記録

Oracle OraHome90の場合 データベースはdbname
Connection

Connection Name Oracle9
User Name orauser
Password hogehoge
Host Name localhost
Port 1521
Data Source dbsrc
JDBC URL jdbc:oracle:thin:@localhost:1521:dbname
JDBC Driver ora90 


Database Driver
Driver Name ora90
Description 空白
Database Oracle
JDBC URL jdbc:oracle:thin:@localhost:1521:dbname
Path C:\oracle\ora90\jdbc\lib\classes12.jar
     C:\oracle\ora90\jdbc\lib\nls_charset12.jar
Class Name oracle.jdbc.driver.OracleDriver


参考Webサイト:
TECHSCORE(テックスコア)(補足)Oracleへの接続
http://www.techscore.com/tech/Java/JavaEE/JDBC/oracle-1/#jdb7-2

PostgreSQL dblink

XEAD Editor、XEAD Driverを使って開発が進むようになると
レガシーシステムから新システムへのデータ移行
異なるPostgreSQLのデータベース間でのデータ移行を頻繁に行う必要が出てくる。

MySQLであれば、データベース名で修飾するだけで異なるデータベースにアクセスできる。


PostgreSQLでは、dblinkを利用する方法がある。

Let's Postgresで紹介されているが、Windows版での利用注意点を記録する。

http://lets.postgresql.jp/documents/technical/contrib/dblink/


ローカルデータベース(local)とリモートデータベース(remote)での確認作業が必要である。

PostgreSQL 9.2.3 Windows版での実行例

1.(local)へPgAdminIIIで接続し、次のSQLを実行する

CREATE EXTENSION dblink;

データベースツリーのExtensionsにdblinkが追加されることで確認。

2.Let's Postgresの記事を参考に次の2関数を追加する
get_columndef(regclass)
insert_from_remote(insert_into regclass, conninfo text, remote_query text, num_fetch integer)

3.(remote)の複写したいテーブルのcreate文をPgAdminIIIで取得、(local)で実行して同じテーブルを作成する。

4.ローカルホスト内で(remote)のtbl商品台帳を(local)にコピーすると仮定して
(local)へPgAdminIIIで接続し、次のSQLを実行する
SELECT insert_from_remote('tbl商品台帳','host=localhost port=5432 dbname=remote user=postgres password=hogehoge', 'SELECT * FROM tbl商品台帳', 1000);

第2引数は、環境にあわせ書き変える。

第2引数の例がヒットしなかったので次のエラーでつまづいた。

ERROR: could not establish connection
SQLステート:08001
コンテキスト:SQL文 "SELECT dblink_connect('copy_conn', conninfo)"
PL/pgSQL function insert_from_remote(regclass,text,text,integer) line 11 at PERFORM

dblinkを導入しなければならないのは(local)側のデータベースのみです。