Ugur, SQL serverdaki yavaslik o islemin yavas olmasindan kaynaklanmiyor. Query Analyzerda sonuclari gosteren grid sanirim VB tabanli, yavaslamaya o neden oluyor. Ayni islem SQL2005 ile cok hizli, ya da arada SQL analyzeri degil de sorguyu VFP'den SQLExec() ile yaparsan. Ayni anda SQL server uzerinden ilginc seyler yapmak mumkun (ki bir kere excel ile yapmistim). Mesela:
MS Excel, VFP, Access ve SQL serverda tablolarin var. Bunlarin bir sekilde join ile baglanip sana sonuc gerekiuyor. O kullandigimiz teknikle VFP'den bir query hazirlayip, SQL server'dan calistirmasini ve sonucu vermesini isteyebilirsin. Hiz acisindan zamanlamasi yapilmis bir testde:
SQL server'da 120binden biraz fazla kaydi, dogrudan SQL server pivot yapip sonucu almak 0.3 saniye civarindaydi. O datayi VFP'ye alip, pivot islemini orada yapmak 0.5 sn civarinda. Bir baska islemde (Tarkan sormustu soruyu hatirladigim kadariyla) 1 milyon civarinda kaydin icinden birkac bin kaydin "proximity" yontemiyle eslenmesi (birisinde tarih&saat ve kur degerleri, digerinde tarih&saat ve miktar, fiyat, doviz var. O tarih saate karsilik gelen kur yok ama ona en yakin alinmis kur) 1sn altinda gerceklesti (ilk gordugumde ben de inanamadim - SQL server VFPnin hiz kralligina son verdi galiba, desktopda hala kral VFP:)
VFP tablolarina uzaktan erisime gelince is biraz farkli. VFP tablolari "dosya" tabanli, SQL server gibi sistemler ise "servis" tabanli. VFP dosyasina ulasmak o nedenle bir cesit herhangi bir text dosyasina ulasmaya benziyor. Bunu yapmanin N tane yolu var, 2 ucun ne kadar senin kontrolunde olduguna bagli. Mesela yillar oncesinden beri calisan bir yol uzak sisteme senin kullanici olarak tanimli olman. Windowsta duz iki makinenin baglanmasi gibi. O sekilde baglanirsan, uzaktaki makine ister dunyanin obur ucunda ister yan odada olsun bir cesit Intranet yontemi. Bu yontemin avantaji real time multiuser kullanim. Ancak ne yazikki degisen isletim sistemleri ve guvenlik arttirimlari, eskiden kolay olan bu yontemi neredeyse ayni odadaki 2 makine icin bile cekilmez hale getirdi. Simdi illaki bir server araya girecek efektif birseyler yapabilmek icin.
Bir baska yontem windows sockets. Soket yonteminde de iki ucun kontrol altinda olmasi ve birinin dinleyici olamsi lazim. Dinleyiciye read-write islemleri yapabiliyorsun o zaman. Uygulamasi cok efektif ve hizli ama ne yazikki karmasik ve herkesin harci degil.
FTP get/put baska care olmayinca kullanilabilecek statik bir yontem. O zaman UT'de benim 10-15 sene kadar once (o zaman ne internet ne modem illaki disketle filan gidecek) yayinladigim bir article ve kod var. Ona bakmak isteyebilirsiniz. Bu tip bagimsiz dosyalarin senkronasyonu icin. Ancak VFP'de simdi (daha dogrusu cok uzun yillardir) offline view var. O bu isler icin bicilmis kaftan gibi (notebooka datatyi al, git isle, 1 ay sonra tatilden don, ana datayla senkronize et).
Bir baska yontem web servisleri veya web server uzerinden browser ile erisme. Son derece basit ve bir o kadar da zor secenekler (hem basit hem zor nasil oluyor - yapana kadar kabus, yapmaya baslayinca kolay diyelim. Sagolsun Cemal ve Hakan yillar once ona "ASP ne ya" diye sordugumda benim cahillegime laf etmeden bana anlattilar ve ornek gosterdiler de yavas yavas emeklemeye basladim:).
Benim favori yontemlerimden birisi isin icine .Neti sokuyor. .Net remoting ile network uzerinde dunyaninin neresinde olursa olsun bircok makineyi birlestirmek kolay olmaya basladi. Benim o alanda calismam oldukca yeni oldugundan hazir birsey yok elimde VFP icin ama zaman ne gosterir bir arac filan yapar miyim bilmiyorum (son derece kucuk ihtimal).
SQL express ile haberlesmek ve onu arada data transfer ortami olarak kullanmak iyi bir fikir olabilir (bastaki query anayzer yontemi - OpenRowset() ve OpendDatasource()). Sadece select icin kullanilacaksa SQL server VFP'yi linked server olarak ta kullanabiliyor.
Gene cenem dustu:)