1

Konu: sql ile ilgili bir soru

Visual Fox Pro
1

SQLExec(m.lnHandle,[select Cari_kod,Cari_unvan1,cari_unvan2 from CARI_HESAPLAR  Cari_KOD='AHMET'],[liste)

bu komut ile cari unvanı 'AHMET' olanlar  grid'e aktarıyorum fakat burda sadece unvanı 'AHMET' olanlar degil 'AHMET' ile baslayan tumu gelmesinii istiyorum ama gelmiyor. sadece birebir uyanlar geliyor == de kullanmadım ama yinede gelmiyor .sorun nedir sizce.?

Bunu left(Cari_unvan,5)='AHMET' ile çözebiliyorum ama bu sql sorugusunu yavaslatacaktır dıye dusunerek baska yontemımız varmı acaba diye bi sormak istedim.

SET EXACT OFF- ON denemeside yaptım yine olmadı
tesekkurler....

2

Re: sql ile ilgili bir soru

Visual Fox Pro
1

SQLExec(m.lnHandle,[SELECT Cari_kod,Cari_unvan1,cari_unvan2 FROM CARI_HESAPLAR  Cari_KOD='AHMET'],[liste)

yerine

Visual Fox Pro
1

SQLExec(m.lnHandle,[SELECT Cari_kod,Cari_unvan1,cari_unvan2 FROM CARI_HESAPLAR  Where Cari_Kod Like 'AHMET%'],[liste)

NOT : kodunda Where de eksikti

http://www.soykansoft.com/images/twitter.jpghttp://www.soykansoft.com/images/wp.jpghttp://www.soykansoft.com/images/blogger.jpg

3

Re: sql ile ilgili bir soru

Çok tsekkurler .

4

Re: sql ile ilgili bir soru

SQL serverda asla o sekilde komutlar kullanma derim (en onemli 10 programlama hatalari listesinde yer aliyor).

Visual Fox Pro
1

2
3
CariKod = 'AHMET%'

SQLExec(m.lnHandle,;
  'SELECT Cari_kod,Cari_unvan1,cari_unvan2 FROM CARI_HESAPLAR  where Cari_KOD like ?m.CariKod','liste')

Burada en onemli fark sen degeri dogrudan yaziyorsun. Gercek hayatta orada dogrudan kodunda olmayacagina gore herhalde:

Visual Fox Pro
1

[SELECT Cari_kod,Cari_unvan1,cari_unvan2 FROM CARI_HESAPLAR  where Cari_KOD like ']+m.CariKod+[']

gibi birsey yapiyorsun. Eger oyleyse iste onu kesinlikle yapma. Neden yapma dersen "SQL Injection Attack" adiyla taniniyor. Yabancilarin istedigi gibi senin database'ine giris yolu.

Neden = 'AHMET' olunca birebir uyanlar geliyor. == ile de olmadi kismina gelince:

== sadece VFP'ye ozel. O olmasaydi SQL server'daki gibi calismasi icin:
SET ANSI ON
gerekirdi. SQL Server ANSI uyumlu, VFP degil temel olarak. VFP de de SET ANSI ON ile bakarsan = 'AHMET' sadece icinde AHMET olanlari getirir.

Bir de nacizane string ayrac olarak [ ] kullanma derim. Neden dersen, tek ve cift tirnagin aksine, icindekiler derlenme sirasinda degerlendiriliyor ve kazara bir #define sabiti var ise o kullaniliyor. Olmaz olmaz ama olursa da insana kafayi yedirecek, bulmasi cok zor hatalara yol acar. Ornegin:

Visual Fox Pro
1

2
3
#define cari_hesaplar 15

? 'SELECT Cari_kod,Cari_unvan1,cari_unvan2 FROM CARI_HESAPLAR where Cari_KOD like ?m.CariKod'
? [SELECT Cari_kod,Cari_unvan1,cari_unvan2 FROM CARI_HESAPLAR where Cari_KOD like ?m.CariKod]
Yen yaz 1907'ye yolla FB gelsin evinde yensin.
(sonra salaklar ciksin alin terine şike desin)

5

Re: sql ile ilgili bir soru

OOO Ahmet, sql server'a bulaştın sonunda demek... big_smile
daha yolun başında gibisin. kolay gelsin...

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

6

Re: sql ile ilgili bir soru

Çetin abi bilgilerin için çok saol , Belkide baslarken benım için hayati tiyolar,

7

Re: sql ile ilgili bir soru

Metin abi evet bulaştık .Bulaşmamak için çok ugrastım .Bekledim ama   Çogu programlar sql gecince .bizim otomatikmen  bir mecburiyet durumu olusutu.  İnsanlar sql olmayınca daha basit program olarak görüyor. Gerci sql ne diye sorsan bilmezler..  Bizim sektorde musterilerimizin %90 ının ihtiyacı yok.ama yinede artık mecbur ..:))

8

Re: sql ile ilgili bir soru

bence ihtiyaç var. data bozulmalarının önüne %100 geçiyorsun. Bu bile tek başına yeterli.

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