İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

BANNER SORUNU (ASP)

suberex

0
İyinet Üyesi
Katılım
14 Mart 2008
Mesajlar
2
Reaction score
0
Merhaba arkadaşlar. Bir script kullanıyorum. Banner Yönetim panelim var. sayfada gösterdiğim banner bir kaç gösterimden sonra aşağıdaki hatayı veriyor.

//////////////////////////////////////////////////////////// /////
Microsoft JET Database Engine error '80040e21'

The Microsoft Jet database engine stopped the process because you and another user are attempting to change the same data at the same time.

/inc_fonksiyonlar.asp, line 699
//////////////////////////////////////////////////////////// /////

Bunun sebebi sanırım bannerı iki kişi aynı anda görüntülemeye çalışınca script hata veriyor. işte aşağıda ilgili kodlar şimdenden teşekkür ederim yardım edicek arkadaşlara...

///////////////////////////////////////////////

Function BannerGoster(intBannerTur)

If intBannerTur = "" OR IsNumeric(intBannerTur) = False Then Exit Function
Dim bSQL, intRandNo, intBannerGosterim

bSQL = "SELECT * FROM tblBanner "
bSQL = bSQL & "WHERE Durum = True AND Baslangic <= #"& Date() &"# AND Bitis >= #"& Date() &"# AND Alan_ID = "& intBannerTur
kdFonksiyon.Open bSQL, adoCon, 1, 3
If kdFonksiyon.Eof Then
'// Bu alana sabit reklam kodu ekleyebilirsiniz.
Else
' Rastgele banner seçimi
Randomize
intRandNo = Int((Rnd*kdFonksiyon.RecordCount)+0)
kdFonksiyon.Move(intRandNo)

intBannerGosterim = kdFonksiyon("Gosterim")
' Reklam HTML kodu ise
If kdFonksiyon("HTML") = True Then
Response.Write kdFonksiyon("Kod")

Else
Response.Write("<a href="""& strScriptYolu &"reklam_yonlendir.asp?rID="& kdFonksiyon("Banner_ID") &""" target="""& kdFonksiyon("Pencere") &""">" & _
"<img src="""& kdFonksiyon("Resim") &""" alt="""& kdFonksiyon("Baslik") &""" style=""border:0; width:"& kdFonksiyon("Genislik") &";height:"& kdFonksiyon("Yukseklik") &""" /></a>")
End If
kdFonksiyon("Gosterim") = intBannerGosterim + 1
kdFonksiyon.Update
End If
kdFonksiyon.Close

End Function
%>

///////////////////////////////
 

kaziklivoyvoda

0
İyinet Üyesi
Katılım
24 Mart 2008
Mesajlar
26
Reaction score
0
bSQL = "SELECT * FROM tblBanner "
bSQL = bSQL & "WHERE Durum = True AND Baslangic <= #"& Date() &"# AND Bitis >= #"& Date() &"# AND Alan_ID = "& intBannerTur
kdFonksiyon.Open bSQL, adoCon, 1, 3

Bunun sebebi muhtemelen buradaki kod olabilir. kdFonksiyon.Open bSQL, adoCon, 1, 3 Oradaki 3 yazısını 1 yapmayı dene bence. Çünkü sen sadece SELECT ile veri çekmeye çalışıyorsun. Ancak banner gösterim sayısını da arttırmak için yazma izniyle tabloyu açıyorsun. Tablolar yazma izniyle açılınca Access ortak kullanımlara izin vermeyebiliyor. Oradaki 3 iznini 1'e çevir. "kdFonksiyon.Open bSQL, adoCon, 1, 1" olacak yani.

Bunu yapınca

kdFonksiyon("Gosterim") = intBannerGosterim + 1
kdFonksiyon.Update

kısmında hata verecek. Tabloyu okumak için açtığından dolayı gösterim sayısını arttıramayıp kızacak. O 2 satırı da silip yerine

sql="update tblBanner set Gosterim=Gosterim+1 WHERE Durum = True AND Baslangic <= #"& Date() &"# AND Bitis >= #"& Date() &"# AND Alan_ID = "& intBannerTur
adoCon.execute sql

gibi bir kod yazabilirsin.

Böylece iki kişi aynı anda banner görüntülemeye kalktığında paylaşım hatasından kurtulursun diye tahmin ediyorum.
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Backlink ve Tanıtım Yazısı için iletişime geçmek için Skype Adresimiz: .cid.1580508955483fe5

seo ajansı , sosyal medya yönetimi
Üst