اضافه کردن ثبت ADO

ما می‌توانیم از دستور INSERT INTO SQL برای اضافه کردن رکوردها به جدول در پایگاه داده استفاده کنیم.

اضافه کردن رکورد به جدول در پایگاه داده

ما می‌خواهیم یک رکورد جدید به جدول Customers پایگاه داده Northwind اضافه کنیم. ابتدا باید یک فرم ایجاد کنیم که شامل حوزه‌هایی است که از آنها داده‌های مورد نیاز ما را جمع‌آوری می‌کنیم:

<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>

مatters

هنگام استفاده از دستور INSERT command، توجه به موارد زیر داشته باشید:

  • اگر یک کلید اصلی در جدول وجود دارد، مطمئن شوید که ارزش‌های اضافه شده به فیلد کلید اصلی منحصر به فرد و خالی هستند (در غیر این صورت، provider این ثبت را اضافه نمی‌کند و یا خطا رخ می‌دهد).
  • اگر یک فیلد شماره‌گذاری خودکار در جدول وجود دارد، این فیلد را در دستور INSERT در نظر نگیرید (این فیلد توسط provider مدیریت می‌شود).

درباره میدان‌های بدون داده

در بانک اطلاعاتی MS Access، اگر شما ویژگی AllowZeroLength را به "بله" تنظیم کنید، می‌توانید رشته‌های طول صفر را در فیلدهای متن، پیوند فراگیر و میدان یادداشت وارد کنید ("").

نکته:همه بانک‌های اطلاعاتی از رشته‌های طول صفر پشتیبانی نمی‌کنند، بنابراین ممکن است در صورت افزودن ثبت با میدان خالی خطا رخ دهد. بنابراین، بررسی نوع داده‌های پشتیبانی شده توسط بانک اطلاعاتی مورد استفاده شما بسیار مهم است.