三流君のソースコード置き場

三流プログラマーが作成したコードが置いてあります。あまり参考にならないと思いますがヨロシクお願いします。

挨拶・自己紹介:
失敗続きのAB型の変わり者 :三流プログラマー Ken3です
フリーのエンジニア・個人事業主です・・と書くと聞こえはイイが(それとなくカッコよく聞こえるが)、 現在は小さな案件の受注請負 と 短期派遣 で 日々つつましく?ほそぼそと暮らしてます。
(※詳細は[三流君 三流プログラマーとは?]を見てください)


広告:


[記事一覧、バックナンバーを見る]

INSERT INTOを使用したサンプル

元の三流解説は、
三流君ASP:SQL INSERT INTO文でデータの追加
↑を見て、笑ってやってください。
ブログに過去のソースコードをアップして、ブログの検索機能で利用してます(利用予定です)
※古くさいコードが多いです・・・



ソースコード

<%@LANGUAGE=VBScript%>
<% Response.CacheControl = "no-cache" %>
<% Response.AddHeader "Pragma", "no-cache" %>
<% Response.Expires = -1 %>
<html>
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=x-sjis">
<title>SQL INSERT INTO文を使用する</title>
</head>
<body>
<h1>SQL INSERT INTO文を使用する</h1>
<strong>INSERT INTO</strong> テーブル名 (フィールド1, フィールド2...) VALUES (値1,値2...)<br>
をdb.Execute(strSQL)で発行するサンプルです。<br>
<b>簡単な処理の流れは</b><br>
Set db=Server.CreateObject("ADODB.Connection") で<br>
'データアクセスにはJet.OLEDB.4.0を使うことを設定<br>
db.Provider = "Microsoft.Jet.OLEDB.4.0"<br>
'次に、接続DBの位置を渡すので、Server.MapPathで変換して渡す<br>
db.ConnectionString = Server.MapPath("db026.mdb")<br>
'データベースを開ける<br>
db.open<br>
'SQL INSERT INTO 文を作る<br>
strSQL = "<strong>INSERT INTO</strong> TEST (F_TITLE, F_MEMO, WriteTime) VALUES ("<br>
strSQL = strSQL & "'" & strTITLE & "'"  'タイトル<br>
strSQL = strSQL & ",'" & strMEMO & "'"  'メモ<br>
strSQL = strSQL & ", #" & now & "#)"     '現在時刻、日付型は#で囲む<br>
'SQL文を発行<br>
db.Execute(strSQL)<br>
<b>接続して、SQL文を渡しているだけでした<br>
実行したり、ソースを見て、動作を確認してください</b><br>
<%  '頭で、入力パラメーターがあるかチェックする
  if IsEmpty(Request.Form("btnADD")) = True Then 'ボタンが押されたか?
    'そのまま下のHTMLを実行
%>
<br>
ボタンを押すと、INSERT INTO文を発行します<br>
<FORM ACTION="test027-2.asp" METHOD="POST">
タイトル:<% Randomize : zz = Chr(&h22) & "TITLE" & Int(Rnd * 999) & Chr(&h22) %>
<INPUT TYPE="text" SIZE="20" NAME="sTITLE" VALUE=<%=zz%>>
<br>
メモ:
<INPUT TYPE="text" SIZE="80" NAME="sMEMO" VALUE="好きな文字を入れてください">
<br>
<INPUT TYPE="submit" NAME="btnADD" VALUE="登録する">
←db026.mdb(Access MDB) へ データを追加します
</FORM><br>

<% 'データが入力されていたら、
  else
    '書き込み関数を呼ぶ(外側に出したかったので)
    Call TEST_WRITE(Request.Form("sTITLE"), Request.Form("sMEMO"))
  end if   'If文もここで終わり
%>

</body>
</html>

<% 'データを受け取り、DBへ書き込む
Sub TEST_WRITE(strTITLE, strMEMO)

  '@をチェック 2010/11/23追加
  If InStr(strTITLE, "@") > 0 Or InStr(strMEMO, "@") > 0 Then
    Exit Sub  '@が含まれていたら、登録しない(イタズラでメールアドレスを書く人が居るので)
  End If

  '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

  '2009/02/25 シングルコーテーション対策で、 ’’と2つ重ねる。
  strMEMO = Left(Replace(strMEMO, "'", "''"),20)      'シングルコーテーション2個に置換
  strTITLE = Left(Replace(strTITLE, "'", "''"),10)    'シングルコーテーション2個に置換

  'SQL INSERT INTO 文を作る
  strSQL = "INSERT INTO TEST (F_TITLE, F_MEMO, WriteTime) VALUES ("
  strSQL = strSQL & "'" & strTITLE & "'"  'タイトル
  strSQL = strSQL & ",'" & strMEMO & "'"  'メモ
  strSQL = strSQL & ", #" & now & "#)"     '現在時刻、日付型は#で囲む

  'SQL文を発行
  db.Execute(strSQL)

  Response.Write "<hr>発行する(した)SQL文は<br><strong><font color='green'>"
  Response.Write strSQL & "</font></strong><br>です<hr>"

  'データベースも閉じようよ
  db.Close

  'お行儀よくオブジェクトも開放しましょう(通常は自動的に解放されるけど)
  Set db = Nothing

End Sub
%>

↑をテスト実行する→ http://www.ken3.org/cgi-bin/test/test027-2.asp実行する


コードの三流解説は、
三流君ASP:SQL INSERT INTO文でデータの追加
↑を見て、笑ってやってください。