ADO レコード追加
データベースのテーブルにレコードを追加するには、SQLのINSERT INTO命令を使用できます。
データベースのテーブルにレコードを追加する
北windデータベースのCustomersテーブルに新しいレコードを追加したいと思っています。まず、必要なデータを収集するためのフォームを作成する必要があります:
<html> <body> <form method="post" action="demo_add.asp"> <table> <tr> <td>CustomerID:</td> <td><input name="custid"></td> </tr><tr> <td>Company Name:</td> <td><input name="compname"></td> </tr><tr> <td>Contact Name:</td> <td><input name="contname"></td> </tr><tr> <td>Address:</td> <td><input name="address"></td> </tr><tr> <td>City:</td> <td><input name="city"></td> </tr><tr> <td>Postal Code:</td> <td><input name="postcode"></td> </tr><tr> <td>Country:</td> <td><input name="country"></td> </tr> </table> <br /><br /> <input type="submit" value="新しい追加"> <input type="reset" value="キャンセル"> </form> </body> </html>
ユーザーが確認ボタンを押したとき、このフォームは "demo_add.asp" というファイルに送信されます。"demo_add.asp" ファイルには、Customers テーブルに新しいレコードを追加するコードが含まれています:
<html> <body> <% set conn=Server.CreateObject("ADODB.Connection") conn.Provider="Microsoft.Jet.OLEDB.4.0" conn.Open "c:/webdata/northwind.mdb" sql="INSERT INTO customers (customerID,companyname," sql=sql & "contactname,address,city,postalcode,country)" sql=sql & " VALUES " sql=sql & "('" & Request.Form("custid") & "'," sql=sql & "'" & Request.Form("compname") & "'," sql=sql & "'" & Request.Form("contname") & "'," sql=sql & "'" & Request.Form("address") & "'," sql=sql & "'" & Request.Form("city") & "'," sql=sql & "'" & Request.Form("postcode") & "'," sql=sql & "'" & Request.Form("country") & "')" on error resume next conn.Execute sql,recaffected if err<>0 then Response.Write("更新権限がありません!") else Response.Write("<h3>" & recaffected & " レコードが追加されました</h3>") end if conn.close %> </body> </html>
重要事項
INSERT command コマンドを使用する際には、以下の点に注意してください:
- テーブルに主キーがある場合、主キーフィールドに追加する値が一意で空でないことを確認してください(プロバイダーがこのレコードを追加しない場合やエラーが発生する場合があります)。
- テーブルに自動番号のフィールドがある場合、INSERT コマンドではこのフィールドを含めないでください(このフィールドの値はプロバイダーが担当します)。
無データフィールドについて
MS Access データベースでは、AllowZeroLength 属性を「はい」に設定すると、テキスト、ハイパーリンク、メモフィールドにゼロ長さの文字列("")を入力できます。
注:すべてのデータベースがゼロ長さの文字列をサポートしていないため、空白のフィールドを持つレコードを追加するとエラーが発生する可能性があります。したがって、使用しているデータベースがサポートするデータ型を確認することは非常に重要です。