• 27-04-2009, 11:42:03
    #10
    Üyeliği durduruldu
    wm_xfreex adlı üyeden alıntı: mesajı görüntüle
    Orada patlar
    zaten böyle bir class gereksiz servera ek yük bindirmekten başka birşey değil.
    Fakat class yapısını öğrenmek için geliştirilebilir.
    bende böyle class kullanıyordum. sonra baktımki bunun yerine projedeki işlemleri class a dönüştürüp bunların farklı databaseler için farklı versionlarını yapmak performans açısındanda daha iyi. vazgeçtim. yinede classa geçiş için güzel mantık ellerinize sağlık
  • 27-04-2009, 12:16:51
    #11
    Üyeliği durduruldu
    sdemirkeser adlı üyeden alıntı: mesajı görüntüle
    hocam peki sql de gönderdigimiz limit gibi ifadeler ne olacak? select * from tablo limit 10 dedim ve mssql i seçtim örnek olarak
    Burada söylemek istediğinizi açıkçası anlamadım, SQL komutlarını gönderirken hangi veritabanına gönderilicekse ona göre oluşturulur. Hatalı bir sorgu gönderirseniz o da size hata verir.

    Bu bana bir Nasrettin Hoca Hikayesini hatırlattı. Satıcıdan Ayva isteniyor, o da incir veriyor. Buna kızan müşteri incirleri satıcıya atmaya başlıyor. Satıcı da iyi ki incir vermişim ya Ayva verseydim diyor.
  • 27-04-2009, 12:56:14
    #12
    Alıntı
    wm_xfreex´isimli üyeden Alıntı
    Orada patlar
    zaten böyle bir class gereksiz servera ek yük bindirmekten başka birşey değil.
    Fakat class yapısını öğrenmek için geliştirilebilir.
    nasıl patlar inceledinmi classı.

    $row = $baglan->query_wiev("SELECT * FROM tablo limit 10"); örnek olsun diye
  • 27-04-2009, 12:58:41
    #13
    Üyeliği durduruldu
    gogoturk adlı üyeden alıntı: mesajı görüntüle
    nasıl patlar inceledinmi classı.
    $row = $baglan->query_wiev("SELECT * FROM tablo limit 10"); örnek olsun diye
    mssql de aynı kodu calistrin hocam demek istedigimiz o. Yani class in içinde veritabanı farklılıklarını içeren kontrollerde olmalı ki aynı şekilde calisabilsinler
  • 27-04-2009, 13:06:15
    #14
    Zaten query direk yazma olayını da yanlış buluyorum. En temizi stored procedure kullanmak; misal:

    DELIMITER ;;
    DROP PROCEDURE IF EXISTS dbadi.spadi ;;
    CREATE PROCEDURE dbadi.spadi(IN kelime VARCHAR(50))
    BEGIN
    SELECT * FROM tbl_chat WHERE sutun LIKE '%kelime%' LIMIT 0,9;
    END;;
    DELIMITER ;

    kullanımı:

    $row = $baglan->query_wiev("CALL dbadi.spadi"); bununlada çok rahat kullanabilirsin...
  • 27-04-2009, 13:10:03
    #15
    mssql'de de problemsiz çalışıyor...
  • 27-04-2009, 13:15:52
    #16
    Üyeliği durduruldu
    gogoturk adlı üyeden alıntı: mesajı görüntüle
    mssql'de de problemsiz çalışıyor...
    mssql de top yerine limit kullanabiliyor musunuz artik yani?
  • 27-04-2009, 13:20:04
    #17
    Üyeliği durduruldu
    sdemirkeser adlı üyeden alıntı: mesajı görüntüle
    mssql de aynı kodu calistrin hocam demek istedigimiz o. Yani class in içinde veritabanı farklılıklarını içeren kontrollerde olmalı ki aynı şekilde calisabilsinler
    Burada class ı kullanan MsSQL kullanıyorsa MsSQL e uygun, yok PostGreSQL kullanıyorsa PostGreSQL e uygun sql komutları kullanmalı. Yani ben mysql sorgusunu PostGreSQL e gönderirsem ne olur diye bir soru bence saçma.
    Bunlarla ilgili bir sürü kontrol kodu ekleyerek yazılan Class ın şişirilmesi de gereksizdir. Tabii bu benim görüşüm, farklı düşünenlere de saygı duyarım.
  • 27-04-2009, 13:25:37
    #18
    Üyeliği durduruldu
    huseyin66 adlı üyeden alıntı: mesajı görüntüle
    Burada class ı kullanan MsSQL kullanıyorsa MsSQL e uygun, yok PostGreSQL kullanıyorsa PostGreSQL e uygun sql komutları kullanmalı. Yani ben mysql sorgusunu PostGreSQL e gönderirsem ne olur diye bir soru bence saçma.
    Bunlarla ilgili bir sürü kontrol kodu ekleyerek yazılan Class ın şişirilmesi de gereksizdir. Tabii bu benim görüşüm, farklı düşünenlere de saygı duyarım.
    kullandığım sql server a göre sql göndereceksem ha

    switch($sqlTipi){
        case 'mssql';
                // top sql i içeren sql gönder
                break;
        case 'mysql';
                // limit içeren sql gönder
                break;
    }
    yada bunu yapmisim;

    switch($sqlTipi){
        case 'mssql';
                mssql_query("top komutu içeren sql")
                break;
        case 'mysql';
                mysql_query("limit içeren sql");
                break;
    }
    ikisi arasinda kod yazmak olarak bi avantaj yok. performans olarak düşünürsek ikincisi daha hızlı olmuş olur araya birde class katmanı girmedigi için.

    o zaman neden class kullanayım ki,

    Class kullanacaksam classın gönderdigim sql üzerinde metinsel düzenleme yapması gerekiyor.

    Birde sonuçta her sql i değiştirecek diye birşey yok.Tutupta tüm sql farkılıklarını yazmak zorunda degilim yani.kendi kullandığım temel sql farklılıklarını düzentlesi yeterli olur bence