ADO Kayıt Ekle
Veritabanındaki bir tabloya kayıt eklemek için SQL INSERT INTO komutunu kullanabiliriz.
Veritabanındaki Tabloya Kayıt Ekleme
Northwind veritabanındaki Müşteriler tablosuna yeni bir kayıt eklemek istiyoruz. Önce veri toplamak istediğimiz alanları içeren bir form oluşturuyoruz:
<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>
Kullanıcı gönder düğmesine bastığında, form "demo_add.asp" adlı bir dosyaya gönderilir. "demo_add.asp" dosyası, Müşteriler tablosuna yeni bir kayıt ekleyecek kodu içerir:
<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>
Önemli
SQL INSERT komutunu kullanıyorsanız aşağıdakilere dikkat edin:
- Tablo bir birincil anahtar içeriyorsa, birincil anahtar alanına benzersiz, Null olmayan bir değer eklediğinizden emin olun (değilse, sağlayıcı kaydı eklemeyebilir veya bir hata oluşur)
- Tablo bir Otomatik Sayı alanı içeriyorsa, bu alanı SQL INSERT komutuna dahil etmeyin (bu alanın değeri sağlayıcı tarafından otomatik olarak halledilecektir)
Peki ya Verisi Olmayan Alanlar?
Bir MS Access veritabanında, AllowZeroLength özelliğini Evet olarak ayarlarsanız, Metin, Köprü ve Not alanlarına sıfır uzunluklu dizeler ("") girebilirsiniz.
Not: Tüm veritabanları sıfır uzunluklu dizeleri desteklemez ve boş alanları olan bir kayıt eklendiğinde hataya neden olabilir. Veritabanınızın hangi veri türlerini desteklediğini kontrol etmek önemlidir.