• 08-08-2012, 16:34:05
    #1
    arkadaşlar ben access kullanıyorum veritabanı olarak. şimdi uzun bir yazı yazdığımda hata veriyor eklemiyor. ancak kısa 3-5 kelimelik birşey yazdığımda kabul ediyor.

    formda "aciklama" diye bir text-field(multi-line) var. oraya bir şeyler yazıp onayladığımda sıkıntı çıkarıyor.


    <%
    Set Sur = Server.CreateObject("ADODB.Connection")
    Sur.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("database.mdb")
    
    id=request("id") 
    
    adi=Request.Form("adi")
    aciklama=Request.Form("aciklama")
    
    If aciklama="" or adi="" Then 
    Response.Write "Formda eksik bilgi biraktiniz.<br><br>" 
    Response.Write "Geri dönüp kontrol ederek tekrar deneyiniz.<br><br>" 
    Response.Write "<a href=javascript:history.back()>Geri dönmek için tiklayiniz.</a>" 
    Else
    Set guncelle=Sur.Execute("update televizyonlar Set adi='"&adi&"' , aciklama='"&aciklama&"' where id="&id&"") 
    
    Response.Redirect "default.asp"
    end if
    %>
    aciklama alanını veritabanından cıkarıp düzenleme işini yaptığımda sorun olmuyor ancak acıklama ekleyip uzun bir yazı yazdığımda sorun oluyor.
  • 08-08-2012, 17:15:23
    #2
    Üyeliği durduruldu
    access de text alanın karakter limiti 255dir. hücre özelliklerinden limiti yükseltebilirsin
  • 08-08-2012, 17:27:15
    #3
    memo kullandım ama. sınırsız değil mi memonun alanı? text te max 255 karakter yapabildim. onun üstüne cıkıyor mu text te ayarlamayla?
  • 09-08-2012, 10:18:11
    #4
    Üyeliği durduruldu
    hücrenin veri tipini sen Not 'a çevir, epey alır
  • 09-08-2012, 13:47:55
    #5
    access te not durumunda. sıfırdan veri girişi yaparken sorun cıkarmıyor. binlerce karakterlik yazı ekleyebiliyorum ama olan veriyi düzenlerken sıkıntı cıkarıyor. anlamadım sebebini.
  • 09-08-2012, 14:21:15
    #6
    Aciliyeti yoksa msn adresinizi gönderin. İftardan sonra teamviewer ile bağlanır hallederim. İyi çalışmalar..
  • 09-08-2012, 16:04:01
    #7
    arkadaşlar sorunu buldum. çözümünü bulamadım ama sorunu buldum en azından formda veri eklerken tek tırnak işaretini kabul etmiyor. noktalama işaretlerini tek tek silerek buldum ) ama bunu nasıl hallederim şimdiki sorun o.
    hazır bir metin düzenleme scripti koyup deneyeyim bakalım bi. sanırım benim formda tırnak işaretini koda dahil edip bloke ediyor geneli.
  • 09-08-2012, 17:19:45
    #8
    Üyeliği durduruldu
    eğer Execute yöntemi ile eklersen veritabanına veriyiyi, tek tırnakta hata vermesi çok normal.

    Execute kullanırken gönderdiğin veriyi filtreden geçirmelisin, örnekleyeyim.

    Alıntı
    Function Temizle(veri)
    veri=Replace(veri,"'","'")
    veri=Replace(veri,"’","'")
    veri=Replace(veri,"‘","'")
    Temizle=veri
    End Function
    üstteki temizleme fonksiyonunu bir ayar.asp yada fonksiyon.asp sayfan varsa içine yerleştir.

    sonra:
    Alıntı

    baslik=Temizle(Request.Form("baslik"))

    baglanti.Execute("INSERT INTO haberler(baslik) VALUE('"&Baslik&"') ")

    yada
    baglanti.Execute("UPDATE haberler SET baslik='"&Baslik&"' ")
    şeklinde kullan.

    Not: Eğer ADODB nesnesini kullanarak ekleme güncelleme yaparsan tırnak problemin olmaz.
    örnek ADODB kullanımı:
    Alıntı
    baslik=Temizle(Request.Form("baslik"))

    Set rs=Server.CreateObject("ADODB.Recordset")
    sql="SELECT * FROM haberler"
    rs.open sql, baglanti,1,3
    rs.AddNew
    rs("baslik")=baslik
    rs.Update
    rs.Close : Set rs=Nothing

    ya da

    Set rs=Server.CreateObject("ADODB.Recordset")
    sql="SELECT * FROM haberler"
    rs.open sql, baglanti,1,3
    rs.Update
    rs("baslik")=baslik
    rs.Update
    rs.Close : Set rs=Nothing
  • 09-08-2012, 17:27:05
    #9
    adodb de güncellememi yapıyor? yani ordaki verileri yeni bir id üzerinden kaydetmiyor mu?