• 23-10-2008, 02:12:15
    #10
    Access'ten mssql'a geçişte kodlarda değişikliğe gerek varmı.
  • 23-10-2008, 02:56:40
    #11
    Peksoft adlı üyeden alıntı: mesajı görüntüle
    Access'ten mssql'a geçişte kodlarda değişikliğe gerek varmı.
    Yazdığın kod yapısına bağlı.

    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, 03:33:08
    #12
    Sağol o kadar yazmışsın ama tamda mysql'e ısınmaya başladığım zaman kafamı karıştırdın.
  • 23-10-2008, 03:49:15
    #13
    Tamam Sustum
  • 23-10-2008, 04:01:31
    #14
    @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,3
    3. 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:48
    #15
    ReFLeX adlı üyeden alıntı: mesajı görüntüle
    @Web_Kale Arkadaşım verdiğin bilgiler yanlış sırasıyla düzelteyim

    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.