ADO Kayıt Ekleme

Veritabanındaki tabloya kayıt eklemek için SQL'nin INSERT INTO komutunu kullanabiliriz.

Veritabanındaki tabloya kayıt eklemek

Northwind veritabanındaki Customers tablosuna yeni bir kayıt eklemek istiyoruz. İlk olarak oluşturmamız gereken bir form oluşturmalıyız, bu formda veri toplamamız gereken giriş alanları bulunmaktadır:

<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="Yeni Ekle"> 
<input type="reset" value="İptal">
</form>
</body>
</html>

Kullanıcı onay düğmesine tıkladığında, bu form "demo_add.asp" adlı dosyaya gönderilir. "demo_add.asp" dosyası, Customers tablosuna yeni bir kayıt eklemek için gerekli kodları içermektedir:

<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") & "')"
hata durumunda bir sonrakiye geç
conn.Execute sql,recaffected
if err<>0 then
  Response.Write("Güncelleme izni yok!")
else 
  Response.Write("<h3>" & recaffected & " kayıt eklendi</h3>")
end if
conn.close
%>
</body>
</html>

Önemli Bilgi

INSERT command komutunu kullanırken dikkat etmeniz gerekenler:

  • Tabloda bir anahtar alan varsa, anahtar alanına eklediğiniz değerin benzersiz ve boş olmayan olduğundan emin olun (aksi takdirde provider bu kaydı eklemeyebilir veya hata verebilir).
  • Tabloda otomatik numaralandırma içeren bir alan varsa, INSERT komutu komutunda bu alanı içermezsiniz (bu alanın değeri provider tarafından sorumludur).

Veri Alanı Olmadan Hakkında

MS Access veritabanında, AllowZeroLength özelliğini 'Evet' olarak ayarladığınızda, metin, bağlantı ve not alanlarına sıfır uzunluklu dize girebilirsiniz ("").

Açıklama:Tüm veritabanları sıfır uzunluklu dizeyi desteklemeyebilir, bu yüzden boş alan içeren kayıtları eklerken hata oluşabilir. Bu nedenle, kullandığınız veritabanının desteklediği veri türlerini kontrol etmek çok önemlidir.