Forum
Merhabalar,
Bir asp sistemi geliştirmekteyim. Veri tabanım access idi. Sql'e çevirdim. Sistemin Mysql desteği vardı. phpmyadmin'den veri tabanını içeri aktardım, sorgum çalıştırıldı. Ama bu sefer de sitede Türkçe karakter bozukluğu vardı, günlerce uğraşımdan sonra çözdüm. Bu sorunu çözer çözmez başka bir sorun doğdu. Sitede nereye girersem gireyim şu hatayı alıyorum:
Microsoft VBScript runtime error '800a000d'
Type mismatch
Örneğin, anasayfada /tablolar/haberler.asp include edildi. Haliyle default.asp'ye girince aşağıdaki hatayı alıyorum:
Microsoft VBScript runtime error '800a000d'
Type mismatch
/Tablolar/Haberler.asp, line 20
Line 20'deki satır şu:
<td align="center" background="Temalar/<%=tema%>/arkaplan.gif" width="101" class="altcizgi">
Ama bununla alakası bile yok. Haberler.asp'yi aşağıdaki adresten indirebilirsiniz:
http://www.dosya.tc/dosyalar/BhBdWQ/Haberler.asp.zip.html
Söylediğim gibi, bunu yalnızca haberlerde almıyorum. Videokategori.asp, resimler.asp, mesajlar.asp her yerde alıyorum. Sanki her yerde aynı kod var da, onları silmem gerekiyor. Pek anlayamadım doğrusu.
Eğer dilerseniz sistemin bütün dosyalarını upload edebilirim. Yardımcı olabilir misiniz?
Teşekkürler, kolay gelsin.
Bir access veritabanını mysql'e geçirmenin sonucudur bu. Aldığınız hata "veri tipi uyuşmazlığı"dır. Accessdeki veri tipleriyle mysql'deki yeni veri tipleri uyuşmuyor. Database değiştirirken accessten MS SQL e geçseydiniz bu kadar problem yaşamayabilirdiniz.
php-mysql, asp-access-mssql eşleştirmelerini kullanmanızı tavsiye ederim. Diğer durumlarda connector kullanmanız, iki ayrı platformu birbiriyle konuşturmanız gerekecektir.
http://www.aspmysql.com/asp-mysql/content/setup-myodbc adresinden connector kullanımı ve veri erişim örneklerine bakabilirsiniz.
Öncelikle teşekkürler hocam. Ne mysql, nede mssql hakkında çok bilgim var. Mssql'e nasıl geçerim? Mssql için kodları değiştirmem gerekmeyecek mi? Veya neleri değiştirmem gerekecek?
Asp de ms sql de microsoft'un ürünü olduğundan bir connector kullanmanız gerekmez. Geçişiniz daha rahat ve kolay olur. Local testleriniz için makinanıza bir sql server kurmanız gerekir (express versiyonu ücretsiz - http://www.microsoft.com/express/Database/) daha sonra access'e bağlandığınızdan farklı olarak connection cümlesini değiştirmeniz yeterli.
Örnekleriyle burada bir anlatım mevcut : http://www.findikkurdu.com/Article.aspx?ID=18
Hocam, şöyle bir öneri aldım, Mysql'deki veri tiplerini değiştirirsem olabileceklerini söylediler. Genellikle tablodaki veri tipleri Longtext. Varchar yaparsam değişebileceğini söylediler. Varchar en fazla 8000 karakter alıyor. Ben bunu makalelerde nasıl uygulayacağım ki? Bunun hakkında ne düşünüyorsunuz
Bir de şu var, dosyaların başına
<% ON Error Resume Next %>
komutunu koyduğumda sorun ortadan kalkıyor. Acaba bu ne kadar işe yarar?
Type mismatch - Veri tipi uyuşmazlığı demek zaten. Veri tiplerini değiştirerek işe başlayabilirsiniz, bir şansınızı deneyin en azından.
On error resume next - Hata oluşssa bile devam et demek. Eğer hatada veritabanına yazamıyorsa ekranda göstermeyecektir. Bu kod genelde sayfa sonlarında hata kontrolu için yapılan bir özelliktir.
Benim önerim, biraz zahmetli olacak ama, madem yazılım geliştiriyorsunuz. Asp yi bırakıp, asp.net'e geçin. En fazla 1 haftanızı alacaktır. Bu sorunlar otomatik olarak ortadan kalkacaktır.
tecrübeli olduğunuz için konuya "ne var canım onda 1 haftanı bile almaz" demeniz hasleten bana çok anormal gelmedi..
ama ..
1 haftada asp.net .. ilginç geldi bana..
"en fazla 1 haftanızı alacaktır" derken kusurumu bağışlayın ama ne anlamda 1 haftamızı alacaktır..
kastınız sadece html arayüzde standart sayfa ise (bilen için) 1 hafta değil 1 gün bile sorun değilde..
yani hangi bölümü bir haftamızı alacaktır? kod deryası mı? geliştirme ortamı mı? mantığı mı ?
bu şuna benziyor..
araba sürmesini bilen bir adam; bilmeyene "çok basit 1 gününü bile almaz" der..
ama araba sürmesini öğrenmek kimisi için 10 gün, kimisi için bir yada birkaç ay sürer..
kimisi öğrenemez, kimisi pes eder.. kimisi trafik canavarı kesilir..
saygılar. .