Bi kaç sorun :)
14
●1.456
- 23-10-2008, 02:56:40Yazdığın kod yapısına bağlı.Peksoft adlı üyeden alıntı: mesajı görüntüle
Mesela
sana 4 yıl önce mssql de kodladığım ve sonra mdb ye dönüştürdüğüm bi scirptimden ufak bir örnek göstereyim
<%
dim Webkale, tablo
Set Webkale = server. CreateObject("ADODB.Recordset")
tablo = "Select * from Yorumlar where id='"& Request.QueryString("id") &"'"
Webkale.Open tablo,baglanti,1,3
.
.
.
.
%>
Bunu mssql de sağlıklı çalıştırabilirsin ama acceste hata verir. acceste
id = '"& Request.QueryString("id") &" ' yerine
id like '"& Request.QueryString("id") &"' kullandığında sorunsuz tabloyu açtığını göreceksin. Yani böyle küçük şeyler. tarih fonksiyonlarında ufak değişiklikler var. Yani mysql in 100 de 1 i değişiklik yok denebilir.
Dediğim gibi çok fark yok. yani localde çalışırken alacağın hata kodları senin koca scripti 5 dakkada düzeltmene yardımcı olıur.
Hepsi bu. Ki acces veritabanını mssql e mssql veri tabanını da accesse üç beş tık ile convert edebilmen büyük avantajdır.
Takıldığın konular olursa mssql konularında ya da acces konusunda sor.
Ayrıca daha öncede dediğim gibi çok çok büyük projen yoksa acceste yayınla gitsin.
Senin için önemli olan kodlamadaki temiz ve sade yapılanma olmalıdır.
Sana küçük bir örnek vereyim için rahatlasın.
içinde 45000 konu olan 24000 üyeli bir webwiz forumum var. Bu forum inanır mısın acceste halen sorunsuz çalışıyordu. 79 mb veritabanı büyüklüğüydü. Geçen gün ne olur ne olmaz diye bir de serverimde aynı veritabanını bi güzel güncelledim. Mssql e çevirdim. Webwizin kendi içinde ufak bi sayfası var zaten geçiş için.
Sistem büyüdüğü için sağlamlık ve hız devam etsin diye mssql 2005 e geçirdim. Ki sen düşün geri kalanını - 23-10-2008, 04:01:31@Web_Kale Arkadaşım verdiğin bilgiler yanlış sırasıyla düzelteyim

1. Vermeye çalıştığınız kod her iki veritabanında da çalışmaz,
2. Çalışmamasının sebebi integer değerler veritabanından alınırken aşağıda belirttiğim gibi ' tek tırnak kullanılmaz.
dim Webkale, tablo Set Webkale = server. CreateObject("ADODB.Recordset") tablo = "Select * from Yorumlar where id='"& Request.QueryString("id") &"'" Webkale.Open tablo,baglanti,1,33. vermek istediğin kod dediğim hata yapılmadığı takdirde her iki veritabanında da çalışır ki hiçde bir problem çıkarmaz
ama performans açısından Recordset yerine execute yöntemi daha iyidir.
4. where id like "& Request.QueryString("id") &" yöntemi ile where id="& Request.QueryString("id") &" yöntemi arasında dağlar kadar fark vardır biri gelen değerin tamamı veritabanında varsa işlem döndürür id like yöntemi ise verilen değerin veritabanında herhangi bir cümlenin içinde geçiyorsa o kayıtların hepsini gösterir. Örneğin: veritabanında 1 den 100 e kadar id numaralı ürünler olsun gelen değer 5 eğer id like olarak işlemi yaparsan sadece 5 numaralı kaydı değil içinde 5 geçen bütün kayıtları çağırmış olursun ki o da saçma olur
gibi gibi uzayıp gider yazacaklarım diyeceğim o ki iyi güzel herkez yardımcı olmaya çalışıyor ama yanlış hesap bağdat'dan döner diye de bi laf var onun için verilecek bilgiden kesin emin değilseniz yorum yapmamak en güzeli bence
- 23-10-2008, 04:45:48ReFLeX adlı üyeden alıntı: mesajı görüntüle
O zaman ben de ufak ufak itirazlarımı sunayım
1- Mssql de tek tırnak kullanırsanız gelen değerde herhangi bir sorunla karşılaşmadan işlem yapabilirsiniz ama tek tırnaklar acceste çalışmaz. Ben ikicni örneğimi copy paste yapınca orada silmeyi unutmuşum.
Yani kısacası şunu mssql de doğru çalıştırabilrisiniz ama acceste çalıştıramazsınız. Dilerseniz deneyin.
id = '"& Request.QueryString("id") &" ' mssql de çalışır
id like veya = "& Request.QueryString("id") &" acceste çalışır.
Burda ukalalık yapmanıza gerek yok. Benim verdiğim örneği de saptırmanın anlamı yok.
Execute kullanılacağını biz de herhalde çok iyi biliyoruz. Sadece algılanması basit olsun diye hemen girdileri yazıverdim burada.
Adama zorluğu yoktur demeye getiriyoruz ama siz de kalkmış ne diyorsunuz. Bence Bağdata gitmeye de gerek yok. Bağdat ayağımızda kardeşim Ben susayım da değerli hocamız konuşsun.
Tamam Sustum