1

Konu: data environment teki tablolar

herkese merhabalar,
forumdaki yazılardan birinde DE ye tablo eklemenin hatalı bir iş olduğuna dair bir yazı vardı.
ben bu hatayı birçok defalar yaptım, çok pişmanım smile bidaha yapmıycam, ama onun yerine ne yapmalıyım,nasıl bir yol izlemeliyim,önceki çalışmalarımı bozmadan yeni bir yöntemle devam edebilirmiyim,yardımlarınız için şimdiden teşekkür ederim

Kader, beyaz kağıda sütle yazılmış yazı
Elindeyse beyazdan, gel de sıyır beyazı. (NFK)

2

Re: data environment teki tablolar

Hata oldugunu soyleyeni bul, ona sor:) Hataysa ben yapmaya devam ediyorum:)

3

Re: data environment teki tablolar

Eğer raporlardaki data environment den bahsediyorsan.
Ben bırakalı çok oldu.
Raporu çalıştırmadan önce cursor yapıyorum.

Bilmediğin Neyse Yanıldığındır.

4

Re: data environment teki tablolar

Çetin bey yanılmıyorsam sizin bir yazınızda okumuştum smile
form hazırlarken tabloları DE ye atıyorum ve ordan kullanıyorum,tablo sayısı fazla olduğunda formun açılması geç oluyor,yada ben bişeyleri yanlış yapıyorumdur(2.ihtimal daha ağır basıyor)
tabloları DE ye eklemek yerine başka ne yapabilirim.

Kader, beyaz kağıda sütle yazılmış yazı
Elindeyse beyazdan, gel de sıyır beyazı. (NFK)

5

Re: data environment teki tablolar

Form icinse ben dogrudan kullanma demem, bir nedeni vardir ozel durumda (tablo sayisi fazla oldugunda gibi ama herhangi bir form kac tablo kullanirki). Formun yuklenmesini tablonun DE de olmasindan cok obje sayisi filan etkiler, ya da o tablolarda filter, hesap vs isler yapiyorsan. Akla hemen gelmeyen istisnalar her zaman vardir:)
Onun yerine form.load'da nomal use komutlariyla acabilirsin.

6

Re: data environment teki tablolar

en fazla tablo sayısı 8-9 arası(bu enfazla olanı) oluyor
tablolar içinde kayıtlarda en fazla kayıt olan 20.000 civarı(7MB boyutunda)
en fazla obje kullandığım formda
16 button
2 grid(locatorgrid)
15 textbox ve onlara ait labeller
birde excel class ı
formda kullandıklarım bunlar, ağ üzerinde çalışıyor, birde locatorgridde ok tuşuyla ilerlerken CPU kullanımı 100 lere kadar çıkıyor tabi bu seri olarka ilerlerken,tek tek ilerlersen 10-20 arası bazende 50-60 a kadar çıktığı oluyor.birde bu yazdığım objelerin birçoğu açılışta visible = .f.
bunlar bir form için yüklü objelermi ?, bu tarz formlarda nasıl bir yol izlenmeliki form rahat çalışsın

Kader, beyaz kağıda sütle yazılmış yazı
Elindeyse beyazdan, gel de sıyır beyazı. (NFK)

7

Re: data environment teki tablolar

Hayir, son derece rahat bir form. Benim daha kalabalik formlarim var. CPU kullanimi pek fikir vermiyor, VFP genelde backendle cok konusan "chatty" dedikleri cinsten bir yapiya sahip.
Yine de rahatlatmak icin DE formlari yerine VFPOLEDB ile kullanman mumkun.
Locatorgrid'e 20000 kaydi da yukluyor musun, hem de butun fieldlerini? Mumukunse secmeli daha az yukle.

8

Re: data environment teki tablolar

1500 civarı kayıt (10 field) ortalam bu kadar yükleniyor.
load a
use kart shared
...

diye yazarak DE den tabloları kaldırıp çalıştırdım.formu kapatırken bişeyler yapmalımıyım?

Kader, beyaz kağıda sütle yazılmış yazı
Elindeyse beyazdan, gel de sıyır beyazı. (NFK)

9

Re: data environment teki tablolar

Priavte datasession ise birsey yapman gerekmiyor.

10

Re: data environment teki tablolar

Yanlış biliyorsam düzeltin. Sevinirim. DE den yüklenen tabloların diskte bulunduğu adres değişirse sorun yaşanıyor (mu ? ) Bu aynı zamanda her dataset için ayrı bir generasyon ( form için ) gerekeceği sonucunu doğurmuyor mu ?

11

Re: data environment teki tablolar

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.

12

Re: data environment teki tablolar

Açıklama için teşekkürler, böyle bir yaklaşım run time esnasında aynı form ile farklı dataset ler kullanabilme gereksinimini çözer. Bu sıkıntıya kafa yormamak için ben DE yi kullanmamayı tercih ediyordum. Sözünü ettiğin çözümü de daha bol bir zamanımda detaylı olarak deneyeceğim.