Hicbir sey yapmazsan dogru.
Benim kod yazdigim yer altindaki "data" folderi sadece datanın müşteriye gidecek ilk halini tutuyor ve DE tabloları onları işaret ediyor.
Ancak aynı zamanda bir de test data alanım oluyor (veya müşterilerden gelen data).
O sırada kullanmak istedigim datanın pathi bir tabloda tutuluyor (müşteride de o tablo kullanılıyor, değişirse onu değiştirirek yeni bir data seti kullanabiliyorlar).
DE.BeforeOpenTables'da tek satırlık:
UpdateDe(this)
kodu var.
UpdateDE'nin yaptigi table'da tutulan pathi data'nin yeri olarak gostermek (DE'dekiler cursor objeleri, propertylerini runtime'da degistiriyorum yani).
starter ve k diye 2 ufak programi da program gelistirirken kullaniyorum. Starter'in yaptigi uygulamanın gercek myApp custom classini yaratmak. O initinde tablodaki pathi yeni data pathi olarak kuruyor ve cDataPath property'sine yazıyor. Update DE'de oApp.cDatapath'e ayarlıyor DE.Cursor pathlerini.
k ise daha basit:
close database all
clear all
kodundan ibaret. oApp.Destroy calismis oluyor ve destroy'da pathler ilk haline getiriliyor.
Boylece sadece istedigim pathi tabloya yazıp:
starter()
* test
k()
seklinde calisabiliyorum. Bir de dikkat ettigim her form diger formlardan bagimsiz calisabiliyor (bir iki form disinda), bagimliliginin olmaması test edilmelerini, debuglarını vs kolaylastiriyor.