51

Re: tablodan tabloya veri atmak

Moderom;

Ne yaptığını/yapmak istediğini pek bilmiyorum. Emin olmamakla birlikle; SCAN/ENDSCAN döngüsüne ihtiyacın var mı? Bir tek UPDATE işini görmüyor mu?

Uğur
-------------------------------------------------------------------------------------------------------------
Hayat bir bisiklete binmek gibidir. Pedalı çevirmeye devam ettiğiniz sürece düşmezsiniz. Claude Peppeer
Kusuru söylenmeyen adam, ayıbını hüner sanır.  Türk Atasözü

52

Re: tablodan tabloya veri atmak

VFP6 kullaniyor.

53

Re: tablodan tabloya veri atmak

cetin abi sağol valla beni takip ettiğin için sizleri çok uğraştırıyorum ama kusura bakmayın..
birde diğer programcı abinin programında projeyi açmak isterken benden config.vfp diye bir dosyayı locate yapmamı bekliyor neden acaba???
sonuçta pjx dosyası mevcut
birde evet sanırım scan dosyası çok işimi görecek vfp 9 işyerinde yok ben kodları evde vfp 9 veya 6 da yazıp işyerine götürüp tekrar oraya adapte ediyorum.....
:-) biraz zahmetli ama napalım olacak bukadar
bide cetin abi ben bir izin alsam senin yanına gelsem bana bu vfp yei su gibi anlatsan olmazmı.

54 Son düzenleyen, moderom (09.02.2011 22:43:06)

Re: tablodan tabloya veri atmak

birde bu scanda

Visual Fox Pro
select Personel

scan
   UPDATE Syedek ;
        SET syedek.fbno = personel.fbno ;
    where Syedek.SSKNo == Personel.SSKNo
endscan

enson kaydın verisini değiştirmiyor neden acaba

55

Re: tablodan tabloya veri atmak

where içerisinde çift koşulu nasıl kullanırım iki koşulun sağlanması

56

Re: tablodan tabloya veri atmak

birde scanda bir sonuç bulunup bulunmadığını nasılanlarım scan bir döngümü koşula göre işlem yapmamı
açılımı nasıldır.

mesela

Visual Fox Pro
for say=1 to 1700

    islemyapildi=.f.
    select tablo
    scan
        update tablo;
        set alan1=xxxx,;
        set alan2=yyyy;  *denemdim bu kısımda hata verdi update ten where in sonuna kadar olan kısmına hata gösterdi
        where tablo.alan3==xyz and tablo.alan4=cccc
        islemyapildi=.t.
    endscan
    if islemyapildi=.f.
        insert into tablo(alan1,alan2,alan3,alan4,alan5,alan6) values (1,2,3,4,5,6)
    endif
next

57

Re: tablodan tabloya veri atmak

Visual Fox Pro
If buay="01"

*******==========================================
    Sele syedek
    Set Order To sskno
    Select Cnt(*) From syedek Into Array sayim
    kk=0
    For sayici=1 To sayim
        Sele syedek
        Set Order To sskno
        Go m.sayici
        islemyapildi=.F.
        arama=syedek.sskno
        arayil=syedek.yil
        bilgi=syedek.sskno+syedek.yil
        dgun=syedek.gun
        ducmat=syedek.ucret
        dikrmat=syedek.ikramiye
        dikfbno=syedek.fbno
        Select sigorta2
        Set Order To sskno
        Scan
            Update sigorta2;
                SET sigorta2.gun01=dgun,;
                sigorta2.ucr01=ducmat,;
                sigorta2.ikr01=dikrmat;
                WHERE sigorta2.sskno==arama And sigorta2.yil==arayil
            islemyapildi=.T.
            ee=ee+1
            aa=aa+1
            bb=bb+dgun
            cc=cc+ducmat
            dd=dd+dikrmat
        Endscan
        If islemyapildi=.F.
            Insert Into sigorta2 (sskno,yil,gun01,ucr01,ikr01,fbno) Values (arama,arayil,dgun,ducmat,dikrmat,dikfbno)
            =Tableupdate(1,.T.,"sigorta2")
            ee=ee+1
            aa=aa+1
            bb=bb+dgun
            cc=cc+ducmat
            dd=dd+dikrmat
        Endif
        kontrol1=sigorta2.gun01
        kontrol2=sigorta2.ucr01
        kontrol3=sigorta2.ikr01
        If kontrol1-30>0
            Messagebox(Str(sigorta2.sskno)+'nolu sigortalının ssk günü 30dan büyük düşürüldü')
            Repl sigorta2.gun01 With 30,;
                sigorta2.fg With kontrol1-30 In "sigorta2"
        Endif
        If sayici=sayim+1
            Exit
        Endif
    Next
    Messagebox(Str(kk)+" "+Str(ee))
    Sele syedek
    Dele All
    =Tableupdate(1,.T.,"syedek")
*******==========================================
Endif


bu kod sadece bir kayıt kaydediyor ve sürekli bir döngüde kalıyor mantık hatammı var ne???

58

Re: tablodan tabloya veri atmak

where içerisinde çift koşulu nasıl kullanırım iki koşulun sağlanması

Moderom; Where de istediğin kadar koşul koyarsın :

Visual Fox Pro
UPDATE Syedek ;

        SET syedek.fbno = personel.fbno ;
    where Syedek.SSKNo == Personel.SSKNo And Tarih = {^2011-01-01} && And (ek koşulların)
Uğur
-------------------------------------------------------------------------------------------------------------
Hayat bir bisiklete binmek gibidir. Pedalı çevirmeye devam ettiğiniz sürece düşmezsiniz. Claude Peppeer
Kusuru söylenmeyen adam, ayıbını hüner sanır.  Türk Atasözü

59

Re: tablodan tabloya veri atmak

1. galiba Çetin'in dediği tipik bir m. kullanmazsan ne olur demostrasyonu.
WHERE sigorta2.sskno==m.arama And sigorta2.yil==m.arayil

2. galiba bu kod VFPda çok daha başka (BASİT) yazılmalı - biraz ne istediğinin ve ne yapacağın uyumsuzluğu var :
Döngü içinde WHERE değişkeni değişmezse döngü sayısı kadar aynı veriyi UPDATE ediyor.

daha BASİT dediğim:
SELE yedek
SCAN
  * SCATTER MEMVAR && aslında bu olmalı
   m.bilgi=syedek.sskno+syedek.yil
   m.dgun=syedek.gun
   m.ducmat=syedek.ucret
  IF SEEK(m.indexlialan,"indextag","sigorta2")
     UPDATE sigorta2 SET xxx=m.yyy WHERE aaa=m.bbbb   && gibi
  ELSE
     INSERT INTO sigorta2 () VALUES ()
  ENDIF
ENDS

VFP9 SP2

60 Son düzenleyen, ugurlu2001 (10.02.2011 11:41:59)

Re: tablodan tabloya veri atmak

birde scanda bir sonuç bulunup bulunmadığını nasılanlarım scan bir döngümü koşula göre işlem yapmamı
açılımı nasıldır.

SQL Update, Select, Insert yada REPLACE tarzı komutlarla işlem yapıyorken; 

Visual Fox Pro
_TALLY

komutu sana çalıştırdığın komutun kaç satıra etki ettiğini gönderir :

Visual Fox Pro
CLOSE DATABASES 

USE HOME(2)+"\Data\Customer"
 
SELECT * FROM Customer WHERE Country = "USA" INTO CURSOR CrsCus READWRITE
? "Seçilen Kayıt : ", _Tally
 
UPDATE CrsCus SET Cust_id = "MODER" WHERE CUST_ID = "GREAL"
? "Güncellenen Kayıt : ", _Tally
Uğur
-------------------------------------------------------------------------------------------------------------
Hayat bir bisiklete binmek gibidir. Pedalı çevirmeye devam ettiğiniz sürece düşmezsiniz. Claude Peppeer
Kusuru söylenmeyen adam, ayıbını hüner sanır.  Türk Atasözü

61

Re: tablodan tabloya veri atmak

Moderom,
Ozur dilerim ama dinlemniyorsun. Hep olayi karmasiklastiriyorsun. A deniyor sen onu Z diye yapmaya calisyorsun. Sana verilen cevaplari biraz dikkatli oku. Her seferinde ayni hatalari tekrarladigini gormek insani uzuyor. Kodu yazmadan once ne yapacagini iyi planla, yazdigini da ne yapiyor diye analiz et. Normalde 1sn surmeyecek islem sanirim sende hic bitmiyor. Kodun uzun ve karisik olunca bakasi gelmiyor insanin ama ilk koduna soyle bir baktim ve gordugum:

Visual Fox Pro
for say=1 to 1700

    islemyapildi=.f.
    select tablo
    scan
        update tablo;
        set alan1=xxxx,;
        set alan2=yyyy;  *denemdim bu kısımda hata verdi update ten where in sonuna kadar olan kısmına hata gösterdi
        where tablo.alan3==xyz and tablo.alan4=cccc
        islemyapildi=.t.
    endscan
    if islemyapildi=.f.
        insert into tablo(alan1,alan2,alan3,alan4,alan5,alan6) values (1,2,3,4,5,6)
    endif
next

-Bir dongu yapmissin icindeki kodu 1700 kere calistiriyor (1700 gibi sabit bir deger kullanirsan bunun adi "sihirli sayi" olur. Neden 1700 onun yerine bir #DEFINE sabiti ya da degisken kullansan daha mantikli). Her neyse asil sorun 2 ya da 1700, ayni kod tekrar tekrar calisiyor. Kodun bir calismasindan digerine hicbir farki yok. Tamamen ayni sey tekrar tekrar yapiliyor. Sadece genel isi 1700 kez yavaslatmaya yarar. Bu gereksizlik ortadan kalkinca kodun yeni hali:

Visual Fox Pro
islemyapildi=.f.

    select tablo
    scan
        update tablo;
        set alan1=xxxx,;
        set alan2=yyyy;  *denemdim bu kısımda hata verdi update ten where in sonuna kadar olan kısmına hata gösterdi
        where tablo.alan3==xyz and tablo.alan4=cccc
        islemyapildi=.t.
    endscan
    if islemyapildi=.f.
        insert into tablo(alan1,alan2,alan3,alan4,alan5,alan6) values (1,2,3,4,5,6)
    endif

-Dongunun icerisinde gereksiz bir "IslemYapildi" degiskeni ve sonrasinda onun IF ile kontrolu var. Neden gereksiz? .F. ile baslatiyorsun, guzel. Kod mutlaka Scan...endscan arasina giriyor ve degeri mutlaka .T. oluyor  ( "endscan" oncesinde -   islemyapildi=.t. - ). Daima .T. olduguna gore:

If IslemYapildi = .F. sonucu da daima .F. yani o blok da tamamen gereksiz oluyor. Bunu da duzeltince kod:

Visual Fox Pro
select tablo

    scan
        update tablo;
        set alan1=xxxx,;
        set alan2=yyyy;  *denemdim bu kısımda hata verdi update ten where in sonuna kadar olan kısmına hata gösterdi
        where tablo.alan3==xyz and tablo.alan4=cccc
    endscan

haline geldi.

-Bakalim sonra ne yapiyorsun. "Tablo"'yu seciyorsun ve scan ... endscan dongusune giriyor. Scan ... endScan calistigi tablonun kayitlarini kosulsuz bastan sona tarar. Yani:

Visual Fox Pro
select Customer

scan
  ? Customer.Company
endscan

Dersen Customer tablosundaki her kayit icin Company degeri ekrana yazilir.

Update de tum tabloda Where ile filtreleyerek calisir. Uzun lafin kisasi sen ayni Update'i tablodaki kayit sayisi kadar tekrar tekrar yapmaya kalkismissin (sansina ilk Update sonrasi en son kayda geldiginden tek bir kez calisarak cikiyor), Onu da duzeltince geriye kalan tek bir update komutu:

Visual Fox Pro
update tablo;

        set alan1=xxxx,;
        set alan2=yyyy;  *denemdim bu kısımda hata verdi update ten where in sonuna kadar olan kısmına hata gösterdi
        where tablo.alan3==xyz and tablo.alan4=cccc

Burada da syntaxi daha once soyledigim gibi duzeltirsen calisan birsey elde edersin. xyz ve ccc nedir anlamadim. xyz ve ccc diye karakter degerler oldugunu varsayarak:

Visual Fox Pro
update tablo;

        set alan1="xxxx", ;
        alan2="yyyy" ;
        where tablo.alan3=="xyz" and tablo.alan4="cccc"

62

Re: tablodan tabloya veri atmak

vallahi cetin abim aslında sizleri yormak istemem ama bilmeyenin hali işte deneme yanılma sorma soruşturma arama tarama sonucunda bir hale getirdim sayılır az birşeyim kaldı onuda bitirdimmi programımı istediğim şekile sokmuş olacağım.
aslında sana gönderebilirmiyim programımı bir incelesen

63 Son düzenleyen, moderom (10.02.2011 18:51:25)

Re: tablodan tabloya veri atmak

Birde bizim maaş programını yenilemek gerekiyor ona kafam takılıyor ne yapacağız bakalım amirler bişi söylesin ona göre haraket edeceğim sosyal güvenlik mevzuatı ve maaş ödeme şekil ve usülleri sürekli değişiyor. acaba forumda kamu işçi maaş ve sigorta işlemleri üzerine çalışan yada program yazan birileri varmı????

64

Re: tablodan tabloya veri atmak

moderom yazdı:

Birde bizim maaş programını yenilemek gerekiyor ona kafam takılıyor ne yapacağız bakalım amirler bişi söylesin ona göre haraket edeceğim sosyal güvenlik mevzuatı ve maaş ödeme şekil ve usülleri sürekli değişiyor. acaba forumda kamu işçi maaş ve sigorta işlemleri üzerine çalışan yada program yazan birileri varmı????

Outsourcing yapın hem saç baş yolmayin hemde bizler gibi geçimini buradan saglayanlar para kazansin smile

65

Re: tablodan tabloya veri atmak

Ya dosdogru bir outsourcing organizasyonu olsa is cikabilir. Biz iki kere hintllerle denedik burun ustu cakildik. Cok beceriksizler.

66

Re: tablodan tabloya veri atmak

Biz iki kere hintllerle denedik burun ustu cakildik. Cok beceriksizler.

Peki Üstat, adamlar neyine güvenip "biz dünyada zirveye oynuyoruz" diyorlar? Bildiğim kadarı ile MS nin developer kadrosunda iyi konumda olan bir kaç Hint 'li bile var.

Uğur
-------------------------------------------------------------------------------------------------------------
Hayat bir bisiklete binmek gibidir. Pedalı çevirmeye devam ettiğiniz sürece düşmezsiniz. Claude Peppeer
Kusuru söylenmeyen adam, ayıbını hüner sanır.  Türk Atasözü

67

Re: tablodan tabloya veri atmak

ugurlu2001 yazdı:

Biz iki kere hintllerle denedik burun ustu cakildik. Cok beceriksizler.

Peki Üstat, adamlar neyine güvenip "biz dünyada zirveye oynuyoruz" diyorlar? Bildiğim kadarı ile MS nin developer kadrosunda iyi konumda olan bir kaç Hint 'li bile var.

kişisel olarak ms developer kadrosunda iyi konumda olan birkaç hintli olması ayrı bir olgu. her milletten insan olabilir orda. ama eğer mevzu hindistan'ın IT'si ise onlar hakkındaki gerçek batının (özellikle amerikanın) fasoncusu olmaları. özgün birşey ürettileri yok. daha çok adam/gün satıyorlar. adam/gün onlarda ucuz olduğu için ve ingilizce de bildikleri için bunu yapıyorlar. aslında o kadar da örnek alınacak büyütülecek bir IT sektörleri yok. asıl sen amerikaya, almanya'ya fransa'ya, danimarka'ya bak. hindistanda ar-ge sıfır. bu ülkeler ar-ge yapıyorlar ve çok büyük paralar kazanıyorlar. bir amerika microsoft'la bir almanya sadece sap'la dünyayı sömürüyor. fransa business objects'i üretmiş, danimarka nav, axapta'yı. bir sas programını satmıyor bile kiralıyor. hindistandan çıkmış böyle bir yazılım yok.

Haksızlıklar karşısında susanlar, dilsiz şeytanlardır!
www.metinemre.com

68

Re: tablodan tabloya veri atmak

Metin,
"Ingilizce de bildikleri icin" - ben de oyle oldugunu saniyordum. Megerse bizdeki gibi bilenler ve bilmeyenler varmis.

Ugur,
Benim forumlardan filan ortaya cikan genel teorim:
Programcilikta en iyiler daha cok Rusya, Bulgaristan, Romanya, Iskandinav ulkeleri ve bizden cikiyor. Hintliler bence nufus kalabaligindan kazaniyor. Bir ulkeden cok iyi bir yazilimci cikma olasili 30 milyonda 1 olsa, bizden 2-3 tane cikabilcekken onlardan 30-40 cikar. Bunlarin icinden bazilari da MS'ta:) Orada ayagi olunca da kendi ulkesine donuyor is. Bizim de gordugumuz, adamlara ulasmaya kalktiginda aslinda ulastigin Amerika'da yasayan "organizator" pozisyonundaki Hintliler. O sana birkac kisiyi CVsiyle oneriyor tahsi ediyor filan. Sonunda da aylarca ugrasip burnun surtuluyor (tabii biz ayni cukura niye iki kere dustuk dersen, zaaf:)  Adamlarin ikincide bana incelemem icin gonderdigi CV'leri inceledim, vay vay vay, sanirsin adamlar roket muhendisi. Icimden "bunlar super ben yanlarina cirak olurum da birseyler kaparim" diye gecti. Sonrasi uzun hikaye ve komedi gotomeetingler. Adamlar daha ilk prototip ile ilgili toplantida VFP ve SQL server'la ilgili beni yemeye kalkti ben sanki hayatimda ne VFP ne SQL server gormemisim gibi (ne yazik ki is isten gecmisti o toplantiya gelene kadar).
Sen foxite'dan filan farketmedin mi en olmadik ve basit sorular, bazen de mantiksiz, nerelerden geliyor:)

69

Re: tablodan tabloya veri atmak

cetinbasoz yazdı:

Ya dosdogru bir outsourcing organizasyonu olsa is cikabilir. Biz iki kere hintllerle denedik burun ustu cakildik. Cok beceriksizler.


bir ara Akbank in hintli ekip ile  internet bankaciligi kısmını yaptiracagini okumustum ama oylemi sonuclandi bilmiyorum

70

Re: tablodan tabloya veri atmak

outsourcing  nedir tam bilmiyorum ama işyerimizde sap sistemi mevcut. ancak işçi özellikle kamu işçi işlemleri ve personel işlemleri ile ikramiye işlemleri konusunda isteklerimize cevap veremediği için bir kendimiz programcıklar yaparak  kısımlar olarak ihtiyaçlarımızı karşılıyoruz.

ayrıca almanların yaptığı sap programı bizim kullandığımız sap sa tırt hiçbir işe yaramıyor ayrıca onu türkiyede bizim kurumumuza uygulamaya çalışanlar resmen beceriksiz. yada bilmiyorlar önceki sosyal sigortalar kanunundan 5510 sayılı kanuna programı adapte edemediler onu bırakın eski iş ve işçi çalıştırma kanununa göre bile sigorta matrahını tutturamadılar ki 1997 den beri yapılmış bir anlaşma var sene 2011 hala yapacağız deyip dünyanın parasını alıyorlar geçenlerde duyduğum şuana kadar aracı kuruma şuana dek 15 milyon $ ödenmişşşş.

71

Re: tablodan tabloya veri atmak

SAP dünyanın bir numaralı ERP'si. Onun yanına yaklaşabilen bile yok şu an. Detaysoft SAP insan kaynakları üzerine çalışıyor. İsterseniz sizi onlarla görüştürürüm.

Haksızlıklar karşısında susanlar, dilsiz şeytanlardır!
www.metinemre.com

72

Re: tablodan tabloya veri atmak

cetinbasoz yazdı:

...Her neyse asil sorun 2 ya da 1700, ayni kod tekrar tekrar calisiyor. Kodun bir calismasindan digerine hicbir farki yok. Tamamen ayni sey tekrar tekrar yapiliyor. Sadece genel isi 1700 kez yavaslatmaya yarar....

sen benim stajyerken yazdığım bordro programında yaptıklarımı bir görseydin. okulda dersleri hiç dinlemezdim. staja başladık, denize attılar bizi. foxbase kullanmaya başladım (onun sebebi de çok komiktir: dbase3 için config.sys de files=20 yazmak gerekiyor dediler. ben config.prg diye bir dosyaya files=20 yazdım ve onu nereye koyacağımı da bilmiyordum. bir türlü başaramadım ve en sonunda foxbase geçti elime, onda gerekmiyordu 3-5 dosya için files=20).

personel dosyasına yeni bir kayıt eklediğimde ince reindex yapıyordum, sonra da sort yapıyordum. her kayıt eklediğimde bunu yapıyordum... smile)
normalde kayıt eklerken reindex gerekmediğini bilmiyordum. her ne ise sort ta koymuşum oraya. kodları sonradan incelediğimde sort'u da neden eklediğimi anlayamamıştım... smile

yani acemilikte oluyo böyle şeyler.

Haksızlıklar karşısında susanlar, dilsiz şeytanlardır!
www.metinemre.com

73

Re: tablodan tabloya veri atmak

Hintliler üzerine
1. yazılım avantajları eski ingiliz sömürgesi olarak iyi ingilizce bildiklerinden (veya amerikalılar öyle olacaklarını düşündüklerinden - not necessarily !) ucuz saat işlerini öncelikle kaptılar. Yazılımcılıkta iyi olup olmadıkları değil, işverenin dediklerini anlamaları nedeni ile .
2. Avrupa (Amerika ile de) ile olan saat farkı dezavantaj oldu, çalışma saatlerini tutturamadılar. Halen alanda boşluk var !

Bizler ise Hintliler var diye o alanda rekabete girmedik ve halen seyrediyoruz.

SAP üzerine
Ünü fiyat kalite oranının çok önünde giden bir ürün. Halen tartışma: "uygulama sonuçlarını almak için bu kadar emek, süre ve para yatırmaya değer mi ?"
Almanya'da alternatifi benim bildiğim en az bir tane var ve geliştiren de bir Türk (Ender Hancıoğlu) . Programların birinin adı SIVAS diğeri SIK !!!!  (Almancada ı harfi yok)

VFP9 SP2

74 Son düzenleyen, metin (14.02.2011 14:53:59)

Re: tablodan tabloya veri atmak

SAP öyle bir kişinin yazabileceği birşey filan değil. Şöyle söyleyeyim kendi bünyesinde 5 adet ERP (NAV,GP,AX,SL, 5. yi hatırlamıyorum) bulunduran Microsoft bile SAP kullanıyor. Devasa bir yazılım. Bu yazılım için fiyat/kalite oranı hesabı yapmak pek te mümkün değil. Çünkü çok büyük işletmelerin kullanabileceği ERP sayısı çok çok az. Bir iki rakibi var ama onlar da SAP'ye yaklaşamıyor. Türkiye'de SAP olmadan işlerini yürütebilecek birçok şirket SAP alıyor, tamam kabul ama Microsoft gibi büyük şirketler için zaten fazla bir seçenek yok. Bir zamanlar Baan diye bir rakibi varmış. O da batmış.
Ekranları pek güzel değil ama o kadar çok kod yazmışlar o kadar çok kod yazmışlar ki onu yakalayabilecek bir firma yok.

Haksızlıklar karşısında susanlar, dilsiz şeytanlardır!
www.metinemre.com

75

Re: tablodan tabloya veri atmak

valla bizde bir türlü sağlıklı çalıştıramadılar sap hep hata hep çağrı hep uyarı yekilendirme yok yetkiniz yok olmadık yerde olmadık sorun özellikle multi kullanım yani bir veri tabanına bir personelde birisi işlem yaparken diğer kişilerde bu personel şu kullanıcı tarafından kitlendi deyip senin önünü tıkıyor maaş koşuyorsun yarıda kesiyor. koşulamayan personeli uyarıyla bildir. başka aksaklıklarda var saymakla bitmez. hesaplama hatası çok bu belki burdaki programcının hatası olabilir. yani ara programcının ancak çok sorunlu listelemelerde hatalar çok gerçek sayılardan çok eksik sorgu değerleri gösteriyor. bizim maaş programı 1700 civarında personelimiz var 45 snde fox proda hesaplıyor. sap saatlerce hatta 1700 kişi 2 saat falan ama tek sorun ankaradan sorgu hesap oraya yaz belki olabilir ama bukadar çok olması düşündürücü.