忍者ブログ
全くIT系ではない製造業の社員がイントラ上でColdFusionと格闘。システム構築を外部委託するとき「できればColdFusionでお願いします」と頼むのだが・・・・
[1] [2]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

coldfusion-style.jp というフォーラムサイトがオープンしました。

早速、有無を言わさず参加です。

コールドフュージョンをちょっと試してみたけど、ココんとこどうしていいかわからん! という方。
是非参加して質問してみては?

秋のColdFusion8発売と、Apolloがらみで今年は盛り上がってほしいですね。


ColdFusion8のパブリックβも開始です!

PR

セカンドライフにアカウントを作ってみました。
まだ全容が把握できてませんが、なんかすごいことになってるのはよくわかります。
とりあえずキャンピングで小銭稼ぎかな?


さて、


イントラのwebマスターで、普通にホームページは作れるけれど、データーベースと連携して検索したりメール飛ばしたりしたいなぁ・・・とやる気はあるけどやり方がわからない、そんなイントラweb担当

に送るColdFusion入門の5回目です。(4回目 3回目 2回目 1回目


今回は、
 1)mdbを作る
 2)サーバーに置く
 3)データーソースを設定する

 4)cfmで、一覧表示するページを作る
 5)データーベースの情報から、全員にメールを送ってみる

ってところから。

■まずは結果
一覧表示するページはこんな感じ(entry79_1.cfm)になります。(heteml申し込んでみた)



■つぎにソース
<html>
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>できればColdFusionでお願いします | Entry79 </title>
  </head>
 
 <cfquery name="sample" datasource="kaisha_add" >
  select mailadd , name , empcd  from addresstable
 </cfquery> 
 
<body>
  <table border="1" cellpadding="3">
  <tr><th>メールアドレス</th><th>氏名</th><th>コード</th></tr>
  <cfoutput query="sample">
  <tr><td>#mailadd#</td><td>#name#</td><td>#empcd#</td></tr>
  </cfoutput>
  </table>
</body>
</html>

■普通のhtmlと違うところは、
<cfquery> のタグと
<cfoutput> のタグの部分。

あと、# で囲まれた文字があります。


■<cfquery>
<cfquery>タグは、データーベースにアクセスするタグです。
<cfquery>     </cfquery>
の間に、SQL文をそのまま書くことができます。
SQLを発行するとか、関数を呼ぶとか、まったく手続きなしに、書くとhtmlのようにそのまま実行されます。

SQLの結果は、
name="sample" などと名前をつけてレコードセットとして受け取り、後でその名前を指定して表示に使います。
datasouce = "kaisha_add" は、前回設定したデーターソースです。


■<cfoutput>
このタグで、変数を表示します。今回の場合は、メールアドレスと名前のリストです。

ColdFusionでは、変数や関数、レコードセットなどは基本的に
#hensudayo#
などと、#でくくって書き出します。

ただし、.cfm ファイルの中ならどこでも#でくくって使えるわけではなく、
<cfoutput> #hensudayo# </cfoutput>
と、cfoutputタグの内側でのみ、変数が有効になります。

単純な変数ではなく、<cfquery>で取り出したレコードセットの場合は、

<cfoutput query="sample">
#name# <br />
</cfoutput>

と書くだけで、レコードセットがループし、結果が5件あれば5件全てが表示されます。

今回のソースでは、
<tr><td>#mailadd#</td><td>#name#</td><td>#empcd#</td></tr>
の部分が、5件分ループして表示されるわけです。


■ほかの言語と一番違うところは、
こんな感じにhtmlの中に直感的に記述できる点だと思います。

そういった意味で、なんちゃってイントラwebマスターにちょうどいいと思うのです。

逆に言えば、MVCモデルでソースを分け、分業するような大規模開発はちょっと不得意なのかもしれません。
ちゃんとやれば、LINKCOM NEXT2 のように、fuseboxフレームワークを駆使してMVCモデルに沿った開発もできるわけですが、なんちゃってイントラwebマスターに大事なのは「手軽さ」ですよね。



次は、
5)データーベースの情報から、全員にメールを送ってみる
の予定です。
CodeZine
Adobeの次期ColdFusionは「Web2.0サービス統合ハブ」
という記事。

なるほど。ハブか。

と思った。

コールドフュージョンでwebページだけを作っているとあまり感じないけれど、Flexでページ(というかFlash)を作っていると、データーベースとの間をコールドフュージョンのwebServiceがつないでくれます。

コールドフュージョンでwebServiceといっても、特別の事をするわけではなく、普通にcfc(コールドフュージョンコンポーネント)を書いていれば、それがwebServiceとして使えてしまいます。

直接.cfmでページを提供するのではないので表には出ないわけですが、しっかり間を取り持ってくれるわけです。


次期ColdFusion(Scorpio)では、クライアント側にApolloやpdfフォーム、バックエンド側に.NETなんかが増えるので、ハブという表現がピッタリですね。

2007年秋リリース予定と発表されたようです。

記事には「今回始めて日本語版が用意される」とありますが、前から日本語版あるよね??
同時リリースってことかなぁ。
ガッテンカレー、2度目も失敗である。

さて、

イントラのwebマスターで、普通にホームページは作れるけれど、データーベースと連携して検索したりメール飛ばしたりしたいなぁ・・・とやる気はあるけどやり方がわからない、そんなイントラweb担当

に送るコールドフュージョン入門の4回目です。


前回は、簡単なメールを一通送ってみました。

今回はいきなりデーターベースに接続してみます。

データーベースに接続して、その内容を一覧表示させてみましょう。
次回以降、データーベースの中のメールアドレスを基にして、全員にメールを送ってみます。


手順としては、
 1)mdbを作る
 2)サーバーに置く
 3)データーソースを設定する
 4)cfmで、一覧表示するページを作る

といった感じです。


1)mdbを作る
なんちゃってイントラwebマスターにとって、一番身近なデーターベースといえば、.mdb
Microsoft accessですね。

ということで、accessで、下のようなテーブルのあるファイルを用意してください。
アクセスのファイル名を
toriaezu.mdb

テーブル名を
addresstable
としましょう。フィールド名は下記を参考に。


↑ちなみにこいつは、Flex2で作ったデータグリッドです。
 flashplayer9がインストールされていないと、グレーの背景しか見えないと思います。

accessのバージョンは2000、2003なら大丈夫です。それ以外はやったことないのでナゾ。


mdbファイルを作ったら、
2)サーバーに置く
サーバーのどこでもいいです。
置いた場所を把握しておいてください。設定には絶対パス(D: とか C:とかで始まるやつ)を知っている必要があります。
.cfmの場所とは何の関係もありません。

Dドライブのdb というフォルダにtoriaezu.mdbを置いたとして話を進めます。


次は、
3)データーソースを設定する
データーソースの設定とは、coldfusion administrator で、データーベースの種類や場所を設定し、「名前」をつけることです。
データーソースを設定して「名前」をつけると、その「名前」を使って、.cfmでデーターベースにアクセスすることができるようになります。その「名前」のことを、データーソース名と言います。

coldfusion administrator を開いて、データーソースメニューから新規追加をしていきます。
データーソース名に kaisha_add と入力し、
ドライバを Microsoft Access with Unicode にして 「追加」ボタンを押します。





すると、データーベースファイルを指定画面になるので、
さっきサーバーに置いたtoriaezu.mdb をサーバーの絶対パスで指定します。
この場合は、D:\db\toriaezu.mdb です。
設定したら、「送信」ボタンを。




・データーソースの更新に成功しました と出ればOKです。

絶対パスの指定を間違えると、エラーが出るかもしれません。
深い場所にmdbを置いた場合は、「サーバーのブラウズ」ボタンから表示されるフォルダツリーを使って、ファイルを指定すると確実です。
(JREがインストールされていなければ、ツリーは出ません)


これで、
kaisha_add
というデーターソースの設定が完了しました。


4)cfmで一覧表示するページを作る

( ̄-  ̄ ) ンー・・・


次はここから。
その(2)でインストールが終わりました。

次は何だろう・・・・・


(。-`ω´-)ンー・・


"Hello! ColdFusion!" などと表示するのはベタだな。


( ̄-  ̄ ) ンー


あれだ。 ColdFusionでメールを送るのがいいんじゃないだろうか。

イントラのwebマスターで、普通にホームページは作れるけれど、データーベースと連携して検索したりメール飛ばしたりしたいなぁ・・・とやる気はあるけどやり方がわからない、そんなイントラweb担当あたりが信者候補

なので、ちょうどいいかな。

ところで、htmlを使ってメールを送るにはどうするかというと・・・・・
フォームを使って送る方法があるけど、あれはwebサーバーが送っているのではなく、ホームページを見ている人のメーラーから送られてるのが実際です。
なんちゃってwebマスターがやりたい事とはちょっと違うはず。

aspならどうやってメールを送るか。
aspの場合、BASP21っていうのが有名で、そいつをサーバーに組み込んで、aspから呼び出して送ります。 えーと、ワタシにやれ と言われても、いろいろ調べまくりでサンプル見つけてやっとできるかな?って感じです。

phpの場合は、mail関数をつかって送る・・・・? 使いやすいようにfunctionを定義して、エンコードをしてほにゃらら・・・・? やれ と言われても困ります。実際。
多分、aspよりハードル高いのでは。


さてColdFusionの場合。

<html>
<cfmail to="jibun@hoge.com" from="cfif@cfplease.com" subject="メールのタイトルだよ">
はろー こーるどふゅーじょん

これはColdFusionサーバーから送ったメールだよ

ではまた。
</cfmail>
</html>

こんな感じ。

ほとんど説明がいらないくらい簡単です。
<cfmail>というのが、ColdFusionのメールを送るタグです。
htmlのタグのように、</cfmail>で閉じます。
間の文章が、改行も含めてそのまんまメール本文になります。

宛先は、to=  の部分に、送り主はfrom= の部分に書きます。
subject = が メールのタイトルです。


メモ帳とか、テキストエディタで書いて、testmail.cfm などという名前でサーバーに保存しましょう。

保存する場所は、普段htmlを置いている場所ならどこでもOK。
内蔵webサーバーの場合は、
インストールフォルダ/wwwroot/  の下になります。

で、おもむろにブラウザで呼ぶ。

http://127.0.0.1:8500/testmail.cfm


・・・・っと、


CFMAIL 用に指定された SMTP サーバーがありません。

コールドフュージョンのエラーはこんな感じで出ます。
これはわかりやすいメッセージの例ですね。
わかんないときは、さっぱりなメッセージだったりしますが。 (´ー`)


さて、インストールして素のままならエラーが出ます。
書いてあるとおり、メールサーバーがどこにあるかわからん! ってことです。

メールの設定は、ColdFusion Administratorの画面で行います。



ここに、メールサーバーのアドレスを入れる必要があります。

それと、ついでに下の方にある、メール文字セットを ISO-2022-JP(Japanese) にしておきましょう。


これで「変更の送信」ボタンを押します。


さて、あらためて testmail.cfm をブラウザで開きます。

・・・・・・

何もエラーが出なければ、メールが送られているはずです。

ちなみに、同じページをリロードしたり、再度開けば、開くたびにメールが送られます。
データーベースにあるアドレスを元に、何百人とメールを送るときは注意が必要です。
不用意にリロードすると、同じメールが何百人に・・・・・


ということで、これがColdFusionのサワリです。

簡単でしょ?
ブログ内検索
プロフィール
HN:
CFIF
性別:
男性
自己紹介:
もっと日本でもColdFusionが広まって欲しいです。

情報通信を生業としない企業の、システム系でもない普通の社員なので、 ColdFusionは独学。参考書が少ないのがツライです・・・・なんだかんだ、ColdFusion4.xのシリウス時代から7年くらいのおつきあい?リンコムNextのソースが教科書かも。

外注するときはよく「できればColdFusionで・・・・」とお願いするのですが、ほとんどの場合「えっ!?」と驚かれてしまい、「SEのアサインが・・・」などと営業さんが困ってしまうことが多くて悲しいです。
ちょっとしたものなら自分でシステム構築しちゃいますが、一人でやるには時間が足りませんね・・・

FlashRemotingとかもやりますが、Flexには手を出してません。
と、最初の頃書きましたが、ついにFlexに手を出しました。Flex1.5はイマイチわかりませんでしたが、Flex2は別物ですね。これで6万円でイインデスカ?
そしてFlex2とColdFusionの組み合わせなら無敵な気がしますよ。ほんとに。
最新トラックバック
カレンダー
03 2024/04 05
S M T W T F S
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
なかのひと
忍者ブログ [PR]