三流君 ASPで遊ぶ、失敗する
[ バックナンバー目次 ] [ 掲示板 ] [ メルマガ登録・解除 ] [ ASP系メニュー ] [ 総合メニュー ]
まぐまぐさんを使用して発行しています
※長期間、未発行のため、休刊、廃刊になってしまいました・・・
※※HPで、不定期に記事を載せる予定です。


昔書いてた サンプルです、読んで笑ってください

<総集編 穴だらけのASP解説ぶりに本人もびっくり(笑)>

こんにちは、Ken3です。

今回は、
今までの総集編です。
まとめてみると、イロイロと穴がわかる。

それを補いながら、次回から何か作ってみたいと思います。

/*
* 1.Active Server Pages(ASP)って?
*/
Active Server Pages(ASP)の説明をしないで、いきなりメルマガ発刊してた。

まず、頭に<script>タグを書き、
<%@ LANGUAGE=VBScript %>

あとは、普通にHTMLを書いて、
サーバー側の処理を記述したい場合は、
<% と
  ここの間がサーバーで処理される
%>
で囲えばいいんだぁ。

<% 〜 %>内に、VBScript(VBAに似てるけど微妙に違う)を記述する。

[No.01 Response.Writeで遊ぶ]
( http://www.ken3.org/backno/backno_asp01.html#1 を参照)
で、そんな説明をいきなりしてました(笑)

すると、読者から、
In message "Re: [ASP で遊ぶ No.001] - Response.Write で遊ぶ",
Yさん wrote...
>サンプルを実行すると、アプリを選択するよう聞いてきます。
>設定方法を教えてください。
---
In message "[BBS :2] サーバーの動作条件",
H.Iさん wrote...
>サーバー側ではどのような条件が整っていればよいのですか?
>Windows2000サーバーではIISを利用すると聞いているのですが。
>また、aspはwindows独自の機能と聞いていますがLinuxで同じようなことは実現
>できますか?教えて下さると有り難いです。
---
と質問が来てしまう(笑)

慌てて、個人でサーバー持ってる人って少ないと思うので、
Windows2000プロフェッショナルにIISをセットアップする方法を
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
http://www.ken3.org/asp/iis-win2000pro.html
に載せる、もう一つの手WindowsNTベースでIISが動作しているサーバーを借りる
http://www.ken3.org/asp/server.html
レンタルサーバーを紹介する(広告の紹介料を稼ぎたかったが反応無し)

[No.02 ASPファイルを動作させるには?]
( http://www.ken3.org/backno/backno_asp01.html#2 を参照)
で、フォローを入れたっけ(笑)*1と2逆だろ。

あと、自分は見てるのだけど、
[ IIS関係 マニュアル ヘルプの話 ]
http://www.ken3.org/asp/iis-help.html
で、やっとヘルプの存在をお知らせしましたね(遅いって)
~~~~~~~~~~~~~~~~~~~~~~

[No.20 インクルード ファイルを使ってまとめてみた]
( http://www.ken3.org/backno/backno_asp05.html#20 を参照)
では、
同じ処理を
<!-- #include file ="入れたいファイルのパス" -->
これを(インクルード処理を)、ASPのファイルの中に入れてまとめました。

まぁ、書き方は、慣れるとして、
学習しなきゃいけないのが、
~~~~~~~~~~~~~~~~~~~~~~~~
VBScript・・ 制御文(IfやForなど)や文字列編集・変換などの関数
HTML・・・・・・ これは、フォーム作りや見た目(Webベースなので)
組み込みオブジェクト FileSystemObject や ADODB.Connection その他の操作
まぁ、こんな感じの知識の組み合わせかなぁ。
と考えると、私のメルマガバランス悪いし、順番が滅茶苦茶(少々反省)

/*
* 2.VBScriptの解説、まったくやってない、関数は少しやってるけど
*/

基本は、HTMLに<% %>でスクリプトを書く、
私がExcelのVBA少し知ってるので、
似ているVBScriptを使用して解説をハジメル。

Response.Write を 使用して、
サーバーで何かしら処理した結果を表示する(返す)。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
表示がHTMLなので、HTMLのセンスも少し必要。
*見た目も重要だし、基本のタグ知らないと話にならない?

[No.03 乱数を使用して今日の運を表示]
( http://www.ken3.org/backno/backno_asp01.html#3 を参照)
では、
Response.Write n

<%=変数%>
と書ける方法を紹介、乱数Rnd関数を使ってみました。

[No.05 IsEmptyでデータチェック]
( http://www.ken3.org/backno/backno_asp02.html#5 を参照)
では、
If IsEmpty(Request.Form("USER-NAME")) = True
とデータの入力チェックで使用しました。

[No.11 結果のデータをInStr関数を使ってカウントしてみる]
( http://www.ken3.org/backno/backno_asp03.html#11 を参照)
では、
InStr関数を使って文字列を探し、カウントする処理を行いました。

[No.12 Left関数を使ってみた、ファイル設計?]
( http://www.ken3.org/backno/backno_asp03.html#12 を参照)
では、
ファイル設計の小話とLeft関数を使ってカウントする処理を行いました。

[No.13 変数を配列にして簡潔に書いてみた]
( http://www.ken3.org/backno/backno_asp03.html#13 を参照)
では、
配列変数を使った処理方法を解説しました。

[No.14 外見の調整とArray関数を使用して配列作成]
( http://www.ken3.org/backno/backno_asp03.html#14 を参照)
では、
配列の初期化で、Array関数を使った方法
strBOX = Array("満足","普通","不満")
を説明しました。

[No.15 FormatNumber関数を使用して小数点固定、%を表示]
( http://www.ken3.org/backno/backno_asp04.html#15 を参照)
では、
外見重要、男性も化粧する時代、FormatNumber関数を使用して表示を調整
を説明しました。

[No.16 入力、結果表示を1つに、Subで関数分割]
( http://www.ken3.org/backno/backno_asp04.html#16 を参照)
では、
やっと、Subの関数を使用して、分割しCallで呼ぶ方法を解説してます
あっ、Function関数の説明してないや(謎)

[No.18 Mod演算子 で 余りを計算する]
( http://www.ken3.org/backno/backno_asp04.html#18 を参照)
では、
MOD で 余りを計算させ5行単位で区切る処理を書きました。

[No.19 001行目と表示したくてRight関数を使う]
( http://www.ken3.org/backno/backno_asp04.html#19 を参照)
では、ASP(VBScript)にFormat関数が無いので、
右側から文字列を切り取るRight関数を使い
Right("000" & カウンタ変数, 3)
で、頭に000を強引に付けてから、右3文字を取り代用しました。

[No.21 文字列の置き換え、Replace関数を使用]
( http://www.ken3.org/backno/backno_asp05.html#21 を参照)
では、Replace関数
Replace(元の文字列, 変換したい単語, 置換える単語)
を使って、タグの一括変換・追加をやってみました。

[No.24 Split関数で配列作成、UBoundで個数の判断]
( http://www.ken3.org/backno/backno_asp05.html#24 を参照)
では、
Split関数で分解元の文字列と区切り文字を渡すと配列が作成される、
strBOX = Split("Ken3,ASP不得意,VBA少しできる", ",") '配列データを作成
その配列の要素数を知りたいなんて時は、
UBound(配列変数)
とやると、配列のインデックス最大値(数)を返してくれるので、
組み合わせて使うと便利と説明。

[No.31 DateAdd関数で日付や時間の計算]
( http://www.ken3.org/backno/backno_asp07.html#31 を参照)
では、
DateAdd関数で日付や時間の計算して、
SQLの条件に使用して、3日前までのデータを表示しました。

あれ?VBScriptの構文、IfやForなどの解説して無いや
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
関数の解説ももっと詳しくしてみたいですね。
*リファレンス的にまとめたいです。

/*
* 3.フォームから値を受け取る
*/

どんなシステムにも、ユーザーから受け取った値を処理する仕組みがあります。
HTMLのフォームから入力された値を送ってもらい、ASPでも処理します。

[No.04 フォームから値を受け取りたい]
( http://www.ken3.org/backno/backno_asp01.html#4 を参照)
では、
フォームを作成し、モードPOSTで送信
受け取りの基本は簡単で、
Request.Form("フォームの項目名")
で受け取りました。

[No.08 URLに付けたパラメータを参照(クエリ情報)]
( http://www.ken3.org/backno/backno_asp02.html#8 を参照)
では、
URLに付けた情報 test007-2.asp?ID=123 ?の後ろがパラメーターを取出す
Request.QueryString("項目名")をやりました。
満足 http://www.ken3.org/cgi-bin/test/test008-2.asp?A=1
普通 http://www.ken3.org/cgi-bin/test/test008-2.asp?A=2
不満 http://www.ken3.org/cgi-bin/test/test008-2.asp?A=3
などのよくみかけるパターンを少し解説しました。

さらに続けて、
[No.09 URLに付けたパラメータを参照(クエリ情報)]
( http://www.ken3.org/backno/backno_asp02.html#9 を参照)
では、
フォームのMETHOD="GET"で送ると、
フォームの値をURLに載せて、ASPが呼ばれてることを説明しました。

[No.22 隠し項目type="hidden"を使ってみた]
( http://www.ken3.org/backno/backno_asp05.html#22 を参照)
では、
画面に表示されない隠し項目の使い方を解説しました。
固定のパラメーターなどを隠して(表示しないで)渡す時に必要です。

まだ、パスワードの入力フォーム、リストボックスなどの選択やってないなぁ。
フォーム関係は奥が深いので、さらに詳しく説明が必要ですね。

/*
* 4.テキストファイル FileSystemObject
*/
ASPでファイルを操作するには、
FileSystemObject
を使用します。

[No.06 データをテキストファイルに書き込む]
( http://www.ken3.org/backno/backno_asp02.html#6 を参照)
では、
'*1 FileSystemObjectを生成します、、って英文、そのままジャン。
Set objFS = Server.CreateObject("Scripting.FileSystemObject")
'*2 test006.txt を追加モードで開く
Set ts = objFS.OpenTextFile(Server.MapPath("test006.txt"), 8, True)
'*3ファイルにデータを書き込む
ts.write "test006-1.asp アクセス時刻は、" & Now
ts.write chr(13) & chr(10)
'*4使ったファイルは閉じようよ
ts.close
オブジェクト作成、ファイルオープン、書き込み、クローズをやりました。
また、物理ファイルの位置を求める
Server.MapPath("ファイル名")
を使いました。

書き込みができたら次は、読み込みで、
[No.10 テキストファイルからデータを読む]
( http://www.ken3.org/backno/backno_asp03.html#10 を参照)
では、
一行読み込み .ReadLine
.AtEndOfStream でファイルの終端をチェックする
.ReadAll で ファイルを全て読む
の読みこみ系処理を解説。

[No.23 苦肉の策、配列をリングみたく使ってみた]
( http://www.ken3.org/backno/backno_asp05.html#23 を参照)
では、
テキストファイルのデータを逆順に読んでみたくって、
チャレンジしたけど、うまく行かなくて、
小細工してみたお話です。

ディレクトリ関係、まったくノータッチですね。
ファイルの存在チェックとか、その他細かいところありそうですね。

/*
* 5.データベースに挑戦 ADODB.Connection
*/

なんとなく、ASPがわかってきた今日この頃、
データベースを操作するため、
ADO DB Connection オブジェクト の 操作

SQLの解説をはじめた。

[No.26 MDBファイルにアクセスしてみたADODB.Connection]
( http://www.ken3.org/backno/backno_asp06.html#26 を参照)
では、基本形の
'ADO DB Connection オブジェクトを作成する、英文そのままじゃん
Set db=Server.CreateObject("ADODB.Connection")
'.Provider?プロバイダー?通信会社?じゃなくって
'データアクセスにはJet.OLEDB.4.0を使うことを設定
db.Provider = "Microsoft.Jet.OLEDB.4.0"
'次に、接続DBの位置を渡すので、Server.MapPathで変換して渡す
db.ConnectionString = Server.MapPath("db026.mdb")
'やっとデータベースを開ける
db.open
を解説した。

'お約束のレコードセットの作成 テーブル名TESTから全項目(*)を指定
Set rs = db.Execute("Select * From TEST")

[No.27 SQL INSERT INTO文でデータの追加]
( http://www.ken3.org/backno/backno_asp06.html#27 を参照)
では、
SQLのINSERT INTO文を使って、データをDBに追加。

[No.28 SQL ORDER BYでデータの並べ替え]
( http://www.ken3.org/backno/backno_asp06.html#28 を参照)
では、
SQLのORDER BYを使ってデータの並べ替え、
DESCを追加して降順(逆順)を解説。

[No.30 SQL SELECT文WHERE句を使って条件検索]
( http://www.ken3.org/backno/backno_asp07.html#30 を参照)
では、
SELECT文のWHERE句の説明を軽く行い、
区分を指定してデータを表示しました。

[No.32 SQL DELETE文でデータを削除してみた]
( http://www.ken3.org/backno/backno_asp07.html#32 を参照)
では、
SQL Delete文を発行して、データを削除しました。

[No.33 SQL UPDATE文でデータを更新する]
( http://www.ken3.org/backno/backno_asp07.html#33 を参照)
では、
SQL UPDATE文を発行して、データを更新しました。

SQL、まだまだ、入り口に入ったところです。
私も探りながら一歩一歩進んで行くので、ヨロシクです。

/*
* 6.その他、組み込みオブジェクト
*/

[No.07 ブラウザ(端末情報)をGetする]
( http://www.ken3.org/backno/backno_asp02.html#7 を参照)
では、
Request.ServerVariables(項目名)
とやると、いろいろな値が取れます。
Request.ServerVariables("REMOTE_ADDR")で、IPアドレス
Request.ServerVariables("HTTP_USER_AGENT")で、端末の情報
がGetできる、他に取得可能な値を見てみたい、をやりました。

[No.17 中身を表示、Server.HTMLEncodeでソースの表示]
( http://www.ken3.org/backno/backno_asp04.html#17 を参照)
では、
Server.HTMLEncoded("文字列")
で<HTML>の<を&lt;に>を&gt;と置き換えて、
&lt;HTML&gt;にしてくれるよと関数を紹介しました。

他にも、クッキー情報やセッション、共通のApplicationオブジェクトなど、
まだまだ手を付けてない項目がたくさんあります。

/*
* 7.終わりの挨拶
*/

今回は、軽く過去のメルマガをまとめてみました。

単体じゃなく、そろそろつなげて1本システムもどきを作りたいですね。
そんな話しの続きは(自分のメルマガ宣伝)
http://www.ken3.org/backno/backno_guchi28.html#142
で、[トンネルの話、貫通後、横に広げるのは簡単?]
といいかげんなこと書いてます。お時間のある人は見て笑ってください。

[No.25 復習兼ねてHTMLソースを変換するツールの作成]
( http://www.ken3.org/backno/backno_asp06.html#25 を参照)
で、
あまりにも簡単なの作ったけど、物足りなかったでしょ。

[No.29 復習で一言コメント入力の処理を作る]
( http://www.ken3.org/backno/backno_asp06.html#29 を参照)
で、
データベースを使った、簡単なコメント管理(追加と表示機能しかない)
を作りました。
一言感想 http://www.ken3.org/cgi-bin/an/look-komento.asp で使用してるけど、
これもイマイチだなぁ(笑)

もっとまともな例題・使える例題を考えて
チャレンジしてみたいと思います。

素朴な疑問あったら、気軽に、
メール、掲示板に書き込んでくださいね。
掲示板 : http://www.ken3.org/asp/bbs-asp.html

ASP、VBScript勉強中の三流プログラマーのKen3でした。

PS.今日はリンクが多過ぎて、目が疲れた(笑


三流君が作成したASPでテスト実行可能なサンプル