ADO إضافة السجلات
قد نستخدم الأمر SQL INSERT INTO لإضافة سجل إلى جدول في قاعدة بيانات.
إضافة سجل إلى جدول في قاعدة بيانات
نريد إضافة سجل جديد إلى جدول العملاء في قاعدة بيانات 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="Add New">
<input type="reset" value="Cancel">
</form>
</body>
</html>
عندما يضغط المستخدم على زر الإرسال ، يتم إرسال النموذج إلى ملف يسمى "demo_add.asp". يحتوي ملف "demo_add.asp" على الكود الذي سيضيف سجلاً جديدًا إلى جدول العملاء:
<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("No update permissions!")
else
Response.Write("<h3>" & recaffected & " record added</h3>")
end if
conn.close
%>
</body>
</html>
الأهمية
إذا كنت تستخدم الأمر SQL INSERT ، فكن على دراية بما يلي:
- إذا كان الجدول يحتوي على مفتاح أساسي ، فتأكد من إلحاق قيمة فريدة غير خالية بحقل المفتاح الأساسي (إذا لم يكن الأمر كذلك ، فقد لا يُلحق الموفر السجل ، أو يحدث خطأ)
- إذا كان الجدول يحتوي على حقل ترقيم تلقائي ، فلا تقم بتضمين هذا الحقل في أمر SQL INSERT (سيتم الاهتمام بقيمة هذا الحقل تلقائيًا بواسطة الموفر)
ماذا عن الحقول بدون بيانات؟
في قاعدة بيانات MS Access ، يمكنك إدخال سلاسل ذات طول صفري ("") في حقول النص والارتباط التشعبي والمذكرة إذا قمت بتعيين الخاصية AllowZeroLength على "نعم".
ملاحظة: لا تدعم جميع قواعد البيانات السلاسل ذات الطول الصفري وقد تتسبب في حدوث خطأ عند إضافة سجل يحتوي على حقول فارغة. من المهم التحقق من أنواع البيانات التي تدعمها قاعدة البيانات الخاصة بك.