6 Aralık 2013 Cuma

Microsoft SharePoint is not supported in 32-bit process. Please verify that you are running in a 64-bit executable.



Bir Mono klasiği daha vuku buldu ve bloguma yazacaklarım biriktiii, dağ gibi oldu ve haliyle hiçbiri yazılmadı. :D işlerimi biriktirmeye bayılırım. Hele yetiştiremediğim zaman hissttiğim şey paha biçilemez :P Neyse ki bu o kadar da elzem bir mevzu değil. Ya da ben farkında değilim :)

Şimdi,, hatamız başlıkta görünmekte. Bir web projesi üzerinde çalışıyorum ve yukarıdaki hatayı aldım. Aslında bu 2. alışım. Ama bu ne biçim hataymış yaa bir daha almam herhalde diye mi düşündüüüm ya da bizim "boss"un (ki ben ona temel reis diyorum kısaca, tabi genelde içimden,, :P) hıphızlı bir oraya bir buraya girerek yaptığı ayarları not almayı başaramadığımdan mı öğrenememiş oldum çözümünü bilmiyorum. Ama sonuçta ikinci sefer sormak zorunda kaldım mıı,, kaldım. :)) Artık üçüncüsü olmasın diye çözümü siz sayın canım cinlerimle de paylaşayım ki bilgi çoğalsın. Google amca pek yardımcı olamadı bu hususta bana keza.. (Bu arada bayağıdır yazmadığımdan herhalde hemen körelmişim haaaaaaa....)

Lafı her zamanki gibi çok uzattığımdan kaynaklanan bir cümle kirliliğinden çıkarken çözüme geçmeyi kendime görev bilirim. :P Alkışa lüzum yok.

İlk olarak Regedit imize giriyoruz.

HKEY_CURRENT_USER -> Software -> Microsoft -> VisualStudio -> 12.0 -> WebProjects -> Use64BitIISExpress i çalıştırıyoruzz.. 

Artık böyle bir hata yok. Yeni hatalara yelken açabiliriiiz,, çalışmaya da geçebiliriz.. ;)


9 Ekim 2013 Çarşamba

Sade ve Şık tasarım ; Bootstrap.. / Kesikli iş hayatı grafiği ; Mono's :D


Hayatım her hayat gibi ilkleer ve sonlar dolu.. Ama sanırım iş konusunda diğer hayatlara göre biraz daha fazla ilke ve sona sahibim :P  İlk işten çıkarılışımın üzerinde 1.5 ay geçti ve bugün yeni işimdeki ikinci haftam..

Yazmadığım zaman zarfında tahmin edersiniz cinlerim ki; hem yoğun hem depresiftim :)) 

Bazen acaba iş mevzusundaki bu bol bol ilkli sonlu, kesikli grafiğimin bana anlatmaya çalıştığı birşeyler var da ben mi göremiyorum diye düşünmüyor değilim.. Bakalım hayırlısı,, belki birgün görürüm, görürsem söylerim.. :P Bana dayatılan bu özgürlük hapishanesinde geçecekse de ömrüm asıl hedeften şaşmamak asıl hedef. (Bu ilkler sonlar bana duygusallık mı katıyor ne :P)

Yeni işime girmemle birlikte bayağı yoğun bir tempoya da giriverdim.. Bu sene bilgisayar mühendisliği okumaya başladım, derslerim akşamları.. İşten çıkışta eve derse yetişme telaşı oluyor ve çok ara verdiğimden unutmuş olduğum matematiğin sancısı bile beni yormaya yetiyor :) Yine de bloguma yeni şeyler girebilecek malzemeyi ancak işten ve okuldan edinebilirim sanırım :))

Yeni işimle birlikte WCF'le de ayrılık kararı almış olduk. Ayrılık şarkıları eşliğinde ayrılığımın acısını yaşıyorum. Belki birgün başka bir projede, başka bir platformda.. Kimbilir.. Yine de bu ayrılık beni hayattan koparmadı. Yeni bir framework var tanıştık işte.. Bakalım heyecanlıyım,, hayırlısı diyoruuumm ;) 

Bizim bu frameworkle haşır neşir olurken hazırladığım sayfaların sade bir tasarıma ihtiyacı oldu. Aramıza tasarım girdi yani.. -_- .. Ama olsun,, iyi bir dost edindiğimi düşünüyorum.. Ne mi? BootStrap :) 

BootStrap çok güzel birşeymiş yaa.. Sade, şık, kullanıcı dostu.. Sadece indirip projeme dahil ettim ve tasarımlarını çok kolay bir şekilde kullanmaya başladım. Dökümantasyonu, örnekleri çok basit, anlaşılır. 

Linki;
http://getbootstrap.com/

Hali hazırda bir tasarımcısı olmayan ve tasarımın kodlarını yavaşlatmasını istemeyen herkese tavsiyem,, uğraşmayın bootstrap büyük ölçüde işinizi görür :) 

Rreekklamm kokan iletiler bunlaaaarrr :D

Haydi hayırlı işler ;)

21 Ağustos 2013 Çarşamba

Transaction (Process ID ...) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.



Bir varmııış bir yokmuuş.. Sürekli veri çeken, veri yazan, listeleyen bir ajax wcf servis varmış.. Gel verii git verii, yorulmuş bir gün vee "Transaction (Process ID ...) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction." hatasına düşer olmuuş.. :P

Sonra süper kahraman Mono çıkagelmiş vee servisini bu zulden kurtarmak için başlamış çalışmalara.. Çalışınca da kazanmış haliylee :) Burda da masal bitmiiiş..

Tüm postu masallaştırabilme kabiliyetimden şüphem yok ama işte yine o malum üşengeçlik :P

Hikaye anlaşılmış olmalı, sorunumuz transactionların hızlı hızlı çalışırken çakışması.. :) Elbette derinlemesine manasını bilmiyorum ama tahminimce ve internetten okuduklarımla böyle olduğunu tahmin ettim. Böyle de zekalı bir insanım :P

Neyse naçizane bulduğum çözüme geçeyim.. Çözüme kullandığım transactionlara bir ayar nakşederek ulaştığımmı zannediyorum. O ayarı yaptığımdan beri o hatayı almadım ama umarım mahcup olmam :P

Çözümü şurada buldum;
http://forums.asp.net/post/4141266.aspx

Orada ReadCommitted yazmış IsolationLevel a, ama ben onu ReadUncommitted olarak kullandım.

Çünkü, Aralarında bi fark vardı;

ReadUncommitted de, data transaction boyunca okunup düzenlenebiliyor.  (Volatile data can be read and modified during the transaction.)
ReadCommitted de ise data transaction boyunca okunamıyor, ancak düzenlenebiliyor. (Volatile data cannot be read during the transaction, but can be modified.)
ingilizcelerini yazayım da havam olsun..

O farklan çok gözel oldu..
(ya ben bu adamın sözlerini kullanıp duruyorum kaynak belirtmeden ama ilerde başıma dert olur mu bilemedim? :P )


TransactionOptions transOptions = new TransactionOptions();
transOptions.IsolationLevel = System.Transactions.IsolationLevel.ReadUncommitted;
using (TransactionScope scope = new TransactionScope(TransactionScopeOption.RequiresNew, transOptions))
{
 ...
}

Gökten 3 chat penceresi düşmüüüş, biri osmanın, biri benim, biri de ayşenin başına :)
Ama sanırım tek başına birşey düşen bu 3 şahıs değil.. Asıl malum şahsın başına da osman, ayşe ve ben elmalarla beraber düşmüşüz :P ( O kendini biliyor sayın cinlerim herşeyi de merak etmeyin :) )

19 Ağustos 2013 Pazartesi

Jquery Dizileri Karşılaştırma (2 dizinin farklı elemanlarını bulma)


--Basın Açıklaması--

Geçtiğimiz günlerde tarafıma, yazılarımı özgürce yazmama engel olmak için bir komplo kurulduğu malumunuzdur. Ancak bu komploya yenilmeyip canım istedikçe canımın istediğini yazacağım "cinioyuna" duyurulur.

imza= :P

( Sadece espri YK ;) )
--

Vay arkadaş.. 2 haftayı aşıyor bir işi bitiremedik :) Sadece chatleşecektik. kulağa ne basit geliyor, ki aslında öyle de..

Ama bunu yapmayı deneyenler iki junior insanı olunca ve soru sormamıza hemen gözlerini kısan bir yazılım müdürü olunca haliyle uzun sürüyor, basit yerlerde takılınıyor, bazen mantıksız mantıklar yürütülüyor :) o da haklı, sonuçta sorduğumuz sorular çok basit geliyor olmalı. Neyse, sorularımızı bağrımıza basıp elimizden geldiğince birşeyler yapmaya çalışıyoruz işte, böyle böyle düşe kalka öğreneceğiz :)

Yine o basit takılınmış yerlerden birindeydik. Jquery de iki diziyi karşılaştırıp farklı elemanlar için yeni chat penceresi oluşturacaktık. Aaa ben bunu biryerden hatırlıyordum. önceki postumu açtım hemenn, intersecti ve excepti deneyelim dedik. Ama Jquery yle uzaktan bakışıp selamlaşıyor olsak da çok bir samimiyetim yoktu.. Araştırdık bu kodları, Jquery de kullanımlarını bulduk, ama o gün basiretimiz mi bağlanmış derler, çözümü bulmamıza rağmen sonuca ulaşamadık. Tıkanınca tıkanılıyor :) Ertesi iş günü ilk işimiz bunu halletmek oldu; basitçe çözdük ve biz nasıl geçen gün bunu çözemedik diye hayıflanmak da ikinci işimiz oldu haliyle :D Daha çok işimiz var tabi ama bu kısmı yazmış olayım..


  • Kodumuz şöyle;


var array1 = [1, 2, 3, 4, 5, 6];
var array2 = [1, 2, 3, 4, 5, 6, 7, 8, 9];
var difference = [];

jQuery.grep(array2, function(el) {

    if (jQuery.inArray(el, array1) == -1) difference.push(el);


});


alert(" the difference is " + foo);


  • Site şöyle;


http://stackoverflow.com/questions/10927722/jquery-compare-2-arrays-return-difference



  • Kullanımımız şöyle;


var windowArray = [];
for (var i = 0; i < windowsLength; i++) {

     var window = windows[i];
     var windowId = $(window).attr("id");

     windowArray.push(windowId);
}

var dataArray = [];
for (var i = 0; i < dataItems; i++) {

    dataArray.push(d[i].MessageGroupId);
}

var difference = [];
jQuery.grep(dataArray, function (el) {

var control = jQuery.inArray(el, windowArray);

 if (control === -1) difference.push(el);
 });

 for (var i = 0; i < difference.length   ; i++) {
      for (var i = 0; i < d.length   ; i++) {
          if (d[i].MessageGroupId === difference[i]) {

              OnlineChat.ChatWindow(d[i].MessageGroupId, windowUserId,"Konuşma", d[i].GroupUserIds);
                                    }
                                }

                            }


  • Can sıkıntım ise şöyle böyle değil.. 

5 Ağustos 2013 Pazartesi

ASP.NET Hazır Metodla Dizileri Karşılaştırmak


Bozuntu.. Hayal kırıklığı... Direniş... Neler yaşamadım ki o gün.. :(

Halbuki tek yapmak istediğim iki dizinin elemanlarını karşılaştırmaktı. Ve bunu yapmak için .Net'te hazır metodun mutlaka olacağını savunmaktı.. For döngülerine girmek kodlarımın yakışıklılığını bozacaktı. Buna nasıl izin verirdim? Nasıl?? (Nedense for döngülerine önceden beri gıcığım var. Elektirik uyuşmazlığı sanırım.)

İlk denediğim metot SequenceEqual  metoduydu ve ilk intibası iyiydi.. Şansına olmalı; doğru(yani istediğim gibi) çalıştı ilk başta, ama sonra veri tabanından çekip diziye attığım GUID lerin ve metoduma parametre olarak gelen dizinin GUID lerinin sırası aynı değilse SequenceEqual ın doğru(istediğim gibi :p) çalışmadığını farkettim. Yani SequenceEqual sadece sırası aynı olan dizilerde benim "istediğim gibi" çalışıyordu. (adından da belli aslında ya..)

Bu durumda ben de dizileri sıralayıp öyle SequenceEqual metodunu kullanırım diye sıralama çalışmalarına başlamıştım ki...

İlk darbe yazılım müdürümden geldi...

-Bitti mi?
-(sağa sola kafa sallayış.)
-Ne zaman biter? 
-Eee ööö.. (Ekranımda hata penceresi.)
-Bu ne, nerede takıldın?
-Yok yaa o birşey değil,, saçma birşey denedim de onun hatası.
-Bana da söyle de seninle dalga geçeyim canım sıkıldıkça. (zalımca bir sırıtış)

Ve ben kızara bozara OrderByDescending metoduyla bir türlü aynı sırada sıralanmayan GUID lerimi bir de stringe çevirip sıralamayı denediğimi açıkladım.

-Nihahaha...
-....
-.... Yoo hiç de saçma bişey denememişsin aslında ver bakayım... 
- :S
- .... Yok olmadı. Neden sıralamazsa zaten bu OrderByDescending .. Zaten sıralamak zorunda mısın ki SequenceEqual la yapma For ların içinde Contains le yap bakalım hadi. Kolay gelsin.
- :/// 

Benim Mono damarım tutmuştu bir kere, hiç öyle yapar mıydım? :P Tabii ki hayır.
Biraz daha araştırdım ve şu iki hoş metodu buldum. Bulmakla kalmadım kullandım bilee, ne haber. ;)

Şimdii, madem böyle havalanmayı başardın yine,, başlangıçta neden o kadar duygu sömürüsüylen girdin be çocuk diyebilinir.. Ama içimde kopan fırtınaları bir ben bir de Allah bilir. :( :P


  • Bulduğum metotlar;


 string[] sonuc = dizi1.Except(dizi2).ToArray();
//dizi2'de bulunup dizi1'de bulunmayan elemanları sonuç dizisine aktarır. 

string[] sonuc = dizi1.Intersect(dizi2).ToArray();
//dizi1 ve dizi2'de ortak olarak bulunan elemanları sonuç dizisine aktarır.


  • Bulduğum blog;

http://selcukpeksen.blogspot.com/2013/04/c-iki-array-karslastrlmas.html


  • Benim kullanımım;

public static Guid GetGroupId(Guid[] toPersonIdList, Guid userId)
{
   HarmonyEntities harmonyEntities = DatabaseEntities.GetEntities;

   List<Guid> allPeople = new List<Guid>();
   allPeople.Add(userId);
   foreach (var item in toPersonIdList)
   {
    allPeople.Add(item);
   }

   if (allPeople.Count == 2)
   {
   //Her grup için kişiler kontrol edilir.
   Guid[] allPeopleId = allPeople.ToArray();

   var groups = (from p in harmonyEntities.VDB_ASSET_RELATIONS
                 where allPeopleId.Contains(p.GUID_ASSET_Y) &&
                 p.GUID_RELATION_TYPE == Structs.SMSParams.EMessageGroupRT &&
                 p.PRM1 == 1
                 select p.GUID_ASSET_X).Distinct().ToArray();

   foreach (var grup in groups)
   {
    //prm1 i -1 e çekilmiş kayıt varsa 2 kişinin grubu o grup değildir..
    var peopleList = (from p in harmonyEntities.VDB_ASSET_RELATIONS
                      where p.GUID_ASSET_X == grup &&
                      p.GUID_RELATION_TYPE == Structs.SMSParams.EMessageGroupRT
                      select p).OrderByDescending(p => p.GUID_ASSET_Y).Select(p => p.GUID_ASSET_Y).Distinct().ToArray();

    //Eğer dizilerde farklı eleman yoksa o grup numarasını döndür.
    if (peopleList.Except(allPeopleId).ToArray().Count() == 0)
    {
    return grup;
    }
    else
    {
    continue;
    }
    }

    }
  //Eğer mevcut grup bulunamadıysa yeni grup insert edilir.
  return CreateNewGroup(userId, allPeople.ToArray());
}
  • SequenceEquals ın örnek kullanımı;


int[] a = new[] { 3, 5, 6, 8, 9, 3 };

int[] b = new[] { 3, 5, 6, 8, 9, 3 };


bool esitMi = a.SequenceEqual(b);


  • Postun Sonu;


Hayırlı işler, bol kazançlar, Sevgiler, Saygılar..

Bir de iyi bayramlar.
Büyüklerimin ellerinden öpüp içimden keşke hâlâ bana harçlık veren olsa diye geçirip, küçüklerimin yanaklarını sıkıp saçlarını karıştırıp, yaşıt hemcinslerimle sarılıp, karşı cinse başımı hafifçe eğip yan yan sırıtıp, yabancılara da biraz mesafeli bir tavırla bayramınız mübareeek olsunn deyiip,, bu postu noktalıyorum. :))

26 Temmuz 2013 Cuma

Samsung Galaxy S3 "Ağda Kayıtlı Değil" Hatası ve çözümü


Benim annem, güzel anneme(aynı zamanda teknolojiktir de) uzun zamandır almak istediğim akıllı telefonu, sonunda Almanya'da yaşayan teyzemden almak nasip oldu. Uygun fiyatlıydı, sıfır ayarındaydı ve Samsung un çok başarılı modellerinden olan S3'tü. Annemin de onayını alarak bembeyaz bir S3ümüz olmuştu sonunda.. 

Kayıt kuyut işlemleri çok zorlayınca eskiden telefon tamircisi olan ve bu işlerden anlayan, çevresi olan abim telefona IMEI attırdı. Annem telefonu kullanmaya başladı, ama daha ikinci günden telefon donmalara, ekranı simsiyah kesilmelere, bi triplere bi hallere girmeye başladı. Ben de sen misin annemin hemen neşesini kaçıran, gel bakayıım sana bir ROM atalım da aklın başına gelsin diyerek ve kendi telefonumda sürekli olarak yaşadığım başarılı ROM yükleme tecrübelerimin verdiği artistlikle güzel bir ROM indirdim. Recovery modu açtım, güzel güzel yüklediim.. telefon açıldı, çok güzel akıcı çalışıyordu artık çünkü yükleyen "ben"dim.. Övüne övüne anneme teslim ettim ve ertesi gün işe gittiim :) 

Ertesi Gün ... 
Telefonum çalmaya başladı. Ekranda Bizim Ev yazıyor. İlginç.. Sonuçta ev numarasını sadece internet için kullananlardanız. Geri aradım "hayırdır" ses tonuyla ve acı haberi öğrendim. Yıkılmıştım adeta. ROM um yüzümü kara çıkarmıştı,, çekiyor gibi görünüp "Ağda kayıtlı değil" hatası veriyordu. Abime söyledim, bana söyleseydinler, neden kafana göre iş yapıyorsunlar, IMEI silinmiştirler, şimdi yeniden şuraya gidilmesi gerekecekler, geçmiş olsunlar... Abimin bu azarları beni hırslandırmış olacak ki google ın başına oturdum, araştırdım. Çözüme ulaştım. (burdaki tonlamada yine aşırı hava sezilmekte..)

Bulduğum çözüm Arıza Patch diye bir programın telefona kurulup çalıştırılmasından ibaret.. Aşağıdaki linki takip ettim;
http://www.androidciyiz.net/galaxy-s3-4-1-2-guncellemesinden-sonra-sebeke-problemi-cozumu.html

Dikkat edilmesi gereken birkaç nokta;
 *#06# yapınca IMEI nin 00000 veya bataryayı çıkarınca altta yazan IMEI ile aynı olmaması lazım,
 Arıza Patch i çalıştırırken sim kartın telefona takılmış olması lazım. (Ben ilk denediğimde sim kart takılı değildi o yüzden patch uygula butonu gelmemişti. ümitsizliğe düşmüştüm ondan yazma ihtiyacı hissettim)..
 Bu arada ben Android 4.2.1 ROM yüklemiştim, linkte 4.1.2 yazıyor ama bende de çalıştı. 

Yüklediğim ROM da gayet başarılı bir ROM, onun da linkini vermeden geçemeyeceğim..  

http://android-revolution-hd.blogspot.in/p/android-revolution-hd-mirror-site-var.html
Bu linkteki şu ROM;
Jelly Bean (Android 4.2.1)
Download Android Revolution HD 32.0


Diğer en iyi S3 ROM larına da bu adresten erişilebilir;
http://droidviews.com/2013/best-custom-roms-for-samsung-galaxy-s3-gt-i9300-2013-edition/

Abi azarsız, suçlu hissedilmeyen ve havalı günler dilerim  8-)

LINQ - unable to create a constant value of type ‘system.object’. only primitive types



Günlerden yine bir 'iş günü' , aylardan ise Ramazan'dı.. Ve ben yine servislerle, sorgularla gönül eylemekte idim :)... 
LINQPad de sorgumu yazdım,, güzel güzel verilerim geliyordu, servisime aktarabilirim bunu artık diye classıma yapıştırdııım,, o da nesi,, LINQPad de tık demeden çalışan sorgu, "unable to create a constant value of type ‘system.object’. only primitive types" hatası verdii. Zaaten birşey de bir seferde olsun diye ağzımın içinde söylenee söylenee, yarım günümü bu hatayı araştırarak harcadım. Forumlarda "Contains" metodunu "Any" ye çevirerek çözmüşler genelde ancak contains leri tamamen kaldırsam bile aynı hatayı almaya devam ettim.. Evet, sinir olmuştum ve bunun için suçlanamazdım. Açlığın verdiği moralsizliğin de etkisiyle o gün uğraşmayı bıraktım, ertesi gün bir stajer geldi. İyi ki de gelmiş, hatayı hemen araştırıp hemen çözüm buldu.. bir önceki günkü yarım günüme mi yanayıım, çözümün bu kadar basit olmasına mı yanayım bilmiyorum :) 
Meğer hata Equals dan kaynaklanıyormuş.. .Equals yerine == koyunca hatadan eser kalmamıştı. Bu hataya ve bu çözüme teessüflerimi sunarken daha fazla geyik yapmadan kodlarımı yapıştırayım :)


Çalışmamakta direnen sorgum;

from p in harmonyEntities.VDB_ASSETS
                             where p.PRM1.Equals(1) &&
                                   (from q in harmonyEntities.VDB_ASSETS
                                    where q.GUID_PARENT.Equals(new Guid("D5610D87-C220-477F-BA14-009EAB24EBE4")) &&
                                    q.PRM1.Equals(1) && q.PRM0.Contains("\\")
                                    select q.PRM0.Substring(9, 50)).Contains(p.PRM0)
                             select p


Çalışıp ruhuma neş'e sunan sorgum;

from p in harmonyEntities.VDB_ASSETS
                             where p.PRM1 == 1 &&
                                   (from q in harmonyEntities.VDB_ASSETS
                                    where q.GUID_PARENT == (new Guid("D5610D87-C220-477F-BA14-009EAB24EBE4")) &&
                                    q.PRM1 == 1 && q.PRM0.Contains("\\")
                                    select q.PRM0.Substring(9, 50)).Contains(p.PRM0)
                             select p


Vee Emeği geçen, isminin gizli tutulmasını rica eden, iki gündür kuşlar tarafından "lazımlık" olarak kullanılan stajere teşekkürlerini sunaaan,, bendeniz Monooo :) (buraya bir foto yakışırdı ama gülen surat benmişim şakacıktan.)


16 Temmuz 2013 Salı

SQL String Split - Bir stringi bir karaktere göre parçalamak


Pek çok sitede bulunabilecek bir kullanım olduğunun farkındayım ama yazmazsam hemmen unuturum.. :)

Üzerinde çalıştığım sistemde kullanıcılar domain kullanıcı ve form kullanıcısı olarak iki farklı şekilde sisteme kaydediliyor. Her domain kullanıcısının bir form kullanıcısı var ancak her form kullanıcısının bir domain kullanıcısı yok. Bana lazım olan ise domain kullanıcısı olan form kullanıcıları.. bu iki kullanımın da tek ortak yönü isimleri.. Domain kullanıcısı Firma\Monolâra şeklindeyken form kullanıcısı Monolâra şeklinde.. bu durumda isimlerden kontrol etmekten başka çarem yok gibi görünüyor :) 

İşte de şöyle yaptım;

SELECT DBO.CF_ASSET_NAME(GUID_ASSET_Y) AS Y,
FROM VDB_ASSET_RELATIONS
WHERE PRM1=1 AND GUID_ASSET_X IN (SELECT GUID_ASSET_Y
                                  FROM VDB_ASSET_RELATIONS
                                  WHERE GUID_ASSET_X='880E69C9-8292-4B62-B718-4229B624EBCE'
                                   AND GUID_ASSET_Y IN ('AF8FD4D3-9EA1-4F3E-8271-1CF47C48CF23','9ABBC878-F195-431E-8093-7F449F2BA83C')
                                        AND PRM1=1
                                  )
       AND PRM2='Kullanici.Yonetimi.Kullanici'
       AND DBO.CF_ASSET_NAME(GUID_ASSET_Y) IN
       (
             SELECT LTRIM(PARSENAME(REPLACE(PRM0, '\', '.'), 1)) AS ISIMLER
             FROM VDB_ASSETS
             WHERE GUID_PARENT='D5610D87-C220-477F-BA14-009EAB24EBE4'
           AND PRM1 = 1
           AND PRM0 LIKE '%\%'
       )   
----------------------------ya da----------------------
SELECT DBO.CF_ASSET_NAME(GUID_ASSET_Y) AS Y,
FROM VDB_ASSET_RELATIONS
WHERE PRM1=1 AND GUID_ASSET_X IN (SELECT GUID_ASSET_Y
                                  FROM VDB_ASSET_RELATIONS
                                  WHERE GUID_ASSET_X='880E69C9-8292-4B62-B718-4229B624EBCE'
                                   AND GUID_ASSET_Y IN ('AF8FD4D3-9EA1-4F3E-8271-1CF47C48CF23','9ABBC878-F195-431E-8093-7F449F2BA83C')
                                        AND PRM1=1
                                  )
       AND PRM2='Kullanici.Yonetimi.Kullanici'
       AND DBO.CF_ASSET_NAME(GUID_ASSET_Y) IN
       (
             SELECT SUBSTRING(PRM0,CHARINDEX('\',PRM0)+1,len(PRM0)) AS ISIMLER
             FROM VDB_ASSETS
             WHERE GUID_PARENT='D5610D87-C220-477F-BA14-009EAB24EBE4'
           AND PRM1 = 1
           AND PRM0 LIKE '%\%'
       )     

Aslında tablo yapılarımıza göre gitmem gereken yol yukarıdakiydi ama sorgusu 1 dk 13 sn'lik bir sonuç dönünce başka bir yoldan gittim mecburen.. :)


SELECT PRM0
FROM VDB_ASSETS
WHERE
PRM1 = 1
AND PRM0 IN(SELECT LTRIM(RTRIM(PARSENAME(REPLACE(PRM0, '\', '.'), 1))) AS ISIMLER
            FROM VDB_ASSETS
            WHERE GUID_PARENT='D5610D87-C220-477F-BA14-009EAB24EBE4'
                  AND PRM1 = 1
                  AND PRM0 LIKE '%\%'
            )
ORDER BY PRM0

------------------ya da--------------------
SELECT PRM0
FROM VDB_ASSETS
WHERE
PRM1 = 1
AND PRM0 IN(SELECT SUBSTRING(PRM0,CHARINDEX('\',PRM0)+1,len(PRM0))  AS ISIMLER
FROM VDB_ASSETS
WHERE GUID_PARENT='D5610D87-C220-477F-BA14-009EAB24EBE4'
AND PRM1 = 1
AND PRM0 LIKE '%\%'
            )
ORDER BY PRM0


Bu sorgumda bir sorun yok şimdilik.. Olur da şirket çok büyürse küçük bir ihtimal sorun çıkar onun da yakın gelecekte olacağını zannetmiyorum :)

Başlığımda bahsettiğim olayı sağlayan kodlar;

SUBSTRING(PRM0,CHARINDEX('\',PRM0)+1,len(PRM0))
(PARSENAME(REPLACE(PRM0, '\', '.'), 1))
\ karakterinden sonrasını yani Firma\Monolâra nın Monolâra kısmını alır.. 

Yok ben Monolâra yı değil Firma kısmını almak istiyorum diyorsanız kodlarda ufak değişiklikler yeterli olacak;

SUBSTRING(PRM0,0,CHARINDEX('\',PRM0))
(PARSENAME(REPLACE(PRM0, '\', '.'), 2))
\ karakterinden öncesini alır, yani Firma yı..

Farklı olarak, LTRIM, RTRIM baştaki ve sondaki boşlukları atmaya yarıyormuş, artistlik olsun diye kullandım onları da. :P

Şimdi bunları LINQ da nasıl yapıcam ona bakmam lazım.. Müsâdenizle efendiler .. ;)