3 Aralık 2010 Cuma

Login failed for user 'NT AUTHORITY\IUSR'

IIS 7 üzerinde yayınladığınız uygulamalarda, Veritabanı için SQL Server kullanıyor ve Login failed for user ‘NT AUTHORITY\IUSR’ hatası alıyorsanız aşağıdakileri yaparak durumdan kurtulabilirsiniz.

10 Kasım 2010 Çarşamba

Row not found or changed. – LINQ – ChangeConflictException

Eğer Linq to SQL kullanırken "SubmitChanges();" update etmek istediğiniz data "Row not found or changed" mesajı alırsanız hatayı yakalayıpduruma göre eski yada yeni değeri veritabanına yazabilirsiniz.

try
{
      MikroDbDataContext.SubmitChanges(ConflictMode.ContinueOnConflict);
}
catch (ChangeConflictException)
{
      foreach (ObjectChangeConflict conflict in MikroDbDataContext.ChangeConflicts)
      {
             conflict.Resolve(RefreshMode.OverwriteCurrentValues);
      }
}

Yada hiç uğraşmak istemiyorum derseniz;

Update "SubmitChanges();" etmeden önce değişiklik yapacağınız nesneyi refresh ederseniz hatanın oluşmasını önleyebilirsiniz.

MikroDbDataContext.Refresh(RefreshMode.OverwriteCurrentValues, mlzDurumKontrol);

6 Kasım 2010 Cumartesi

Visual Studio 2010 Kes yada Yapıştır da “insufficient memory” hatası alıyorsanız.

Visual Studio 2010 kullanım sırasında Kes yada Yapıştır kullandığınızda “insufficient memory” mesajı ile karşılaşıyorsanız yüklemeniz gereken bir yama mevcut.

Yama için : http://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=29729

The Visual Studio Blog takip ederek hataları izleyebilir ve yamaları yükleyebilirsiniz.

25 Ekim 2010 Pazartesi

Microsoft SQL Server Build List (2000 - 2005 - 2008 / R2)

SQLServerCentral.com web sitesinden kullanmakta olduğunuz Microsoft SQL Server versiyonuna ait build list 'i takip ederek giderilen hatalarının neler olduğunu yada yayınlanan update paketlerin yüklenmesini sağlayabiliriz. 

Versiyonlar:
SQL Server 2000 Build List
http://www.sqlservercentral.com/articles/SQL+Server+2000/71063/

SQL Server 2005 Build List
http://www.sqlservercentral.com/articles/Administration/2960/

SQL Server 2008 Build List
http://www.sqlservercentral.com/articles/SQL+Server+2008/63491/

SQL Server 2008 R2 Build List
http://www.sqlservercentral.com/articles/SQL+Server+2008+R2/70092/

Mikro v14 sürümünde menüye sorgu dosyası bağlayarak raporların oluşturulması.

Merhabalar,

Mikro v14 programlarında T-SQL kodlarını kullanarak sizde kendi raporlarınızı menüye bağlayabilirsiniz. v12 ye göre daha fazla parametre özelliği taşıyan v14 aynı zamanda verdiğimiz kriterler için F10 tuşu ile seçim yapabilmemizi de sağlıyor.

Aşağıda SQL rapor sorgusu çalıştırma parametrelerinin kullanım yapısı yer almaktadır.

<@P1;NAME=Depo no,40;TABLEID=111;FIELDNAME=dep_no;TYPE=I;CHOOSEID=5;MULTI=true
@P1: Değişken adı
NAME: Ekranda görünecek olan açıklama
TABLEID: F10 yapılacak tablonun ID’si
FIELDNAME: F10 yapılıp seçilen kayıttan hangi bilginin alınacağı
TYPE: Alanın tipi I: Integer, T: Tarih, R: Double, S: String
CHOOSEID: F10’da hangi choose kullanılacağı
MULTI: F10’nun çoklu seçimli olup olmayacağı

Yukarıdaki yapıyı baz alarak SQL veri küpü sorgusunun ve rapor sorgusunun nasıl oluşturulacağını örneklerle açıklamaya çalışalım. SQL sorgu dosyaları çalışılan veri tabanının System klasörü altına kopyalanmalıdır.

Örnek-1
İlk örneğimizde veri küpünü ele aldık. Stok envanter yönetimini oluşturduğumuz kriterlere göre küp formatında göstermeyi tercih ettik ve SQL sorgumuzu aşağıdaki şekilde oluşturduk.

[< <@P1;NAME=Depo no,40;TABLEID=111;FIELDNAME=dep_no;TYPE=I;CHOOSEID=5;MULTI=true>
<@P2;NAME=İlk tarih,10;TYPE=T>
<@P3;NAME=Son tarih,10;TYPE=T>
<@P4;NAME=Seçilen depolar tek bir depo gibi gözüksün,5;TYPE=C>
>]
Select * FROM dbo.StokEnvanterYonetimi(@P2,@P3,0,N'@P1',@P4,0)

Hazırlanan sorgular menülere nasıl eklenir ve nasıl çalıştırılır?

    * Öncelikle sorgunun programda hangi bölüme ekleneceği belirlenmelidir. Biz örnek sorgumuzu Stok yönetiminin Raporlar menüsüne ekledik. Bunun için de Raporlar menüsünde mouse’un sağ tuşuna basıp açılacak ekrandan Menü ekle/Bir alt seviyeye menü ekle seçeneğini seçerek ilk adımımızı tamamladık. Aşağıda gerçekleştirdiğimiz işlemin ekran görüntüsü yer almaktadır.


    * İkinci adım olarak da eklediğimiz yeni menüye hazırladığımız sorguyu bağlamamız gerekecek. Bunun için de Yeni menü alanında mouse göstergemizin sağ tuşuna basıp Veri küpü sorgu dosyası bağla seçeneğini seçtik ve hazırladığımız sorgumuzu bilgisayarımıza kopyaladığımız bölümden seçerek işlemimizi sonlandırdık.


    * Bu aşamada eklediğimiz yeni menüden SQL sorgumuzu çalıştırarak parametre ekranımıza ulaşabiliriz. Örneğimize göre parametre ekranımız aşağıdaki şekilde karşımıza gelecektir.



Örnek-2

Raporumuzdan istediğimiz depolardan istediğimiz stokların, gireceğimiz tarih aralığındaki kâr oranlarını listelemesini isteyelim. Bunun için hazırlayacağımız rapor sorgumuz aşağıdaki gibi oluşturulmalıdır.

[<
<@P1;NAME=Depo no,40;TABLEID=111;FIELDNAME=dep_no;TYPE=I;CHOOSEID=5;MULTI=true>
<@P2;NAME=İlk stok kodu,25;TABLEID=13;FIELDNAME=sto_kod;TYPE=S>
<@P3;NAME=Son stok kodu,25;TABLEID=13;FIELDNAME=sto_kod;TYPE=S>
<@P4;NAME=Stok kod yapısI,25;TABLEID=13;FIELDNAME=sto_kod;TYPE=S>
<@P5;NAME=Miktar,12.2;TYPE=R>
<@P6;NAME=İlk tarih,10;TYPE=T>
<@P7;NAME=Son tarih,10;TYPE=T>
>]
SELECT sto_kod as 'Stok kodu',sto_isim as 'Stok Adý',sto_karorani as 'Kar Oraný' FROM dbo.STOKLAR
WHERE ( ( (sto_kod>=@P2) or (@P2='') ) and
( (sto_kod<=@P3) or (@P3='') ) and
( (sto_kod like @P4+'%') or (@P4='') ))

Bu sorguyu programlarımızda istediğiniz bölüme yukarıda açıkladığımız şekilde bağlayarak işlemlerinize devam edebilirsiniz.

Mikro v12 sürümünde menüye sorgu dosyası bağlayarak raporların oluşturulması.

Merhabalar,

Mikro programlarında T-SQL kodlarını kullanarak sizde kendi raporlarınızı menüye bağlayabilirsiniz. Programa (MYE, MIS9000, MRP29000, MIKRONOM, ENERJI vs) "SRV" kullanıcı ile girmeniz gerkiyor. Ana menü üzerinde fare ile sağ tuşa basıp hazırladığımız "rapordosyasi.sql" uzantılı dosyayı seçtiğimizde ekrana ekleyecektir. Kullanıcıların menülerine kalıcı olarak eklemek için fare ile sağ tıklayıp sakla seçeneğini seçtiğimizde yeni raporu eklemek istediğimizi kullanıcıları seçip enter ile onayladığımızda kayıt edilecektir.






?T = Tarih için kullanılan değişken.
?K = Kod için kullanılan değişkeni.

Mikro programdan tarih değişkenini gördüğü anda ekrana başlangıç ve bitiş tarihlerini getiriyor ve sizden tarih girmenizi istiyor. Ör: cha_tarih BETWEEN ?T1 AND ?T2













SELECT TOP 100 PERCENT


        cari_unvan1 AS [Cari_Adi]
        ,1 AS [Ft_Ad]
        ,cari_vdaire_adi AS [Vergi_Dairesi]
        ,cari_vdaire_no AS [Vergi_No]
        ,dbo.fn_StokAnaGrupIsmi(sth_stok_kod) AS [Satilan_Mal_Cinsi]
        ,sth_miktar AS [Miktar]
        ,dbo.fn_StokBirimi(sth_stok_kod,sth_birim_pntr) AS [Birim]
        ,(sth_tutar - (sth_iskonto1-sth_iskonto2-sth_iskonto3-sth_iskonto4-sth_iskonto5-sth_iskonto6)) 

         AS [Tutar]
        ,sth_vergi AS [KDV]
        ,dbo.fn_VergiYuzde(sth_vergi_pntr) AS [Oran]
 

FROM dbo.CARI_HESAP_HAREKETLERI WITH (NOLOCK, INDEX = NDX_CARI_HESAP_HAREKETLERI_04)
        LEFT OUTER JOIN dbo.STOK_HAREKETLERI WITH(NOLOCK) 

        ON (sth_fat_recid_dbcno = cha_RECid_DBCno AND sth_fat_recid_recno = cha_RECid_RECno)
        LEFT OUTER JOIN dbo.CARI_HESAPLAR WITH(NOLOCK) 

        ON (cha_kod = cari_kod)
WHERE cha_tip = 0 AND cha_cinsi in (6,7) AND cha_evrak_tip = 63 AND  
              cha_normal_Iade = 0 AND cha_tarihi BETWEEN ?T1 AND ?T2 OR (?T1 = ''AND ?T2'') 
             AND sth_stok_kod BETWEEN ?K1 AND ?K2 OR (?K1 = ''AND ?K2='')

9 Ekim 2010 Cumartesi

T-SQL kodu çok mu karmaşık, içinden çıkmak çok mu zor?

Bazen karşımıza düzensiz yazılmış kodlar çıkabiliyor. Bu kodu düzenlemeye çalışarak zaman kaybetmek yerine www.dpriver.com/pp/sqlformat.htm web sitesini ziyaret ederek çok daha hızlı düzenleyebilirsiniz.

Database seçeneklerini de içeriğinde barındıran web sitesi çok başarılı. Bir kenara not almanızı tavsiye ederim.