1

Konu: sql: statement too long

Visual Fox Pro
Select mikrochip,no,genno,Proper(adi) Sahibadi,Proper(soyadi) sahibsoyadi,padi hastaadi,pirki hastairki,pcinsi hastacinsi,pcinsiyeti cinsiyet,evtel1 ,evtel2,iştel1,iştel2,gsm1,gsm2,fax,ilçe,il,adres,pal,pnot,pmama,sonuc From hasta Where ;

        (m.cDisplayValue) $Upper(Chrtran(Alltrim(adi),"ğüşıöçi", "ĞÜŞIÖÇİ"));
        OR m.cDisplayValue $Upper(Chrtran(Alltrim(soyadi),"ğüşıöçi", "ĞÜŞIÖÇİ"));
        OR m.cDisplayValue $Upper(Chrtran(Alltrim(padi),"ğüşıöçi", "ĞÜŞIÖÇİ"));
        OR no            =Val(m.cDisplayValue);
        OR genno        =Val(m.cDisplayValue);
        OR pcinsi        =m.cDisplayValue;
        OR pcinsiyeti    =m.cDisplayValue;
        OR ilçe            =m.cDisplayValue;
        OR il            =m.cDisplayValue;
        OR pirki        =(m.cDisplayValue);
        OR m.cDisplayValue $Chrtran[TRANSFORM(mikrochip), chrtran(TRANSFORM(mikrochip), '0123456789', ''), ''];
        OR m.cDisplayValue $Chrtran[TRANSFORM(no), chrtran(TRANSFORM(no), '0123456789', ''), ''];
        OR m.cDisplayValue $Chrtran[TRANSFORM(evtel1), chrtran(TRANSFORM(evtel1), '0123456789', ''), ''];
        OR m.cDisplayValue $Chrtran[TRANSFORM(evtel2), chrtran(TRANSFORM(evtel2), '0123456789', ''), ''];
        OR m.cDisplayValue $Chrtran[TRANSFORM(iştel1), chrtran(TRANSFORM(iştel1), '0123456789', ''), ''];
        OR m.cDisplayValue $Chrtran[TRANSFORM(iştel2), chrtran(TRANSFORM(iştel2), '0123456789', ''), ''];
        OR m.cDisplayValue $Chrtran[TRANSFORM(gsm1), chrtran(TRANSFORM(gsm1), '0123456789', ''), ''];
        OR m.cDisplayValue $Chrtran[TRANSFORM(gsm2), chrtran(TRANSFORM(gsm2), '0123456789', ''), ''];
        OR m.cDisplayValue $Chrtran[TRANSFORM(fax), chrtran(TRANSFORM(fax), '0123456789', ''), ''];
        OR Atc(m.cDisplayValue,Chrtran(Alltrim(adres),"ğüşıöçi", "ĞÜŞIÖÇİ"))>0;
        OR Atc(m.cDisplayValue,Chrtran(Alltrim(pal),"ğüşıöçi", "ĞÜŞIÖÇİ"))>0;
        OR Atc(m.cDisplayValue,Chrtran(Alltrim(pnot),"ğüşıöçi", "ĞÜŞIÖÇİ"))>0;
        OR Atc(m.cDisplayValue,Chrtran(Alltrim(pmama),"ğüşıöçi", "ĞÜŞIÖÇİ"))>0;
        OR Atc(m.cDisplayValue,Chrtran(Alltrim(phasta),"ğüşıöçi", "ĞÜŞIÖÇİ"))>0;
        INTO Cursor kayit

hata mesajı : sql: statement too long
burda satrın uzun olduğunu söylüyor galiba ?

çözüm için önerisi olan

şimdiden teşekkürler

2

Re: sql: statement too long

Visual Fox Pro
Select * ;

    From hasta
Where .F. ;
    into Cursor kayit Readwrite
 
Append From Dbf('hasta') For ;
    (m.cDisplayValue) $Upper(Chrtran(Alltrim(adi),"güsiöçi", "GÜSIÖÇI"));
    OR m.cDisplayValue $Upper(Chrtran(Alltrim(soyadi),"güsiöçi", "GÜSIÖÇI"));
    OR m.cDisplayValue $Upper(Chrtran(Alltrim(padi),"güsiöçi", "GÜSIÖÇI"));
    OR no            =Val(m.cDisplayValue);
    OR genno        =Val(m.cDisplayValue);
    OR pcinsi        =m.cDisplayValue;
    OR pcinsiyeti    =m.cDisplayValue;
    OR ilçe            =m.cDisplayValue;
    OR il            =m.cDisplayValue;
    OR pirki        =(m.cDisplayValue);
    OR m.cDisplayValue $Chrtran[TRANSFORM(mikrochip), chrtran(TRANSFORM(mikrochip), '0123456789', ''), ''];
    OR m.cDisplayValue $Chrtran[TRANSFORM(no), chrtran(TRANSFORM(no), '0123456789', ''), ''];
    OR m.cDisplayValue $Chrtran[TRANSFORM(evtel1), chrtran(TRANSFORM(evtel1), '0123456789', ''), ''];
    OR m.cDisplayValue $Chrtran[TRANSFORM(evtel2), chrtran(TRANSFORM(evtel2), '0123456789', ''), ''];
    OR m.cDisplayValue $Chrtran[TRANSFORM(istel1), chrtran(TRANSFORM(istel1), '0123456789', ''), ''];
    OR m.cDisplayValue $Chrtran[TRANSFORM(istel2), chrtran(TRANSFORM(istel2), '0123456789', ''), ''];
    OR m.cDisplayValue $Chrtran[TRANSFORM(gsm1), chrtran(TRANSFORM(gsm1), '0123456789', ''), ''];
    OR m.cDisplayValue $Chrtran[TRANSFORM(gsm2), chrtran(TRANSFORM(gsm2), '0123456789', ''), ''];
    OR m.cDisplayValue $Chrtran[TRANSFORM(fax), chrtran(TRANSFORM(fax), '0123456789', ''), ''];
    OR Atc(m.cDisplayValue,Chrtran(Alltrim(adres),"güsiöçi", "GÜSIÖÇI"))>0;
    OR Atc(m.cDisplayValue,Chrtran(Alltrim(pal),"güsiöçi", "GÜSIÖÇI"))>0;
    OR Atc(m.cDisplayValue,Chrtran(Alltrim(pnot),"güsiöçi", "GÜSIÖÇI"))>0;
    OR Atc(m.cDisplayValue,Chrtran(Alltrim(pmama),"güsiöçi", "GÜSIÖÇI"))>0;
    OR Atc(m.cDisplayValue,Chrtran(Alltrim(phasta),"güsiöçi", "GÜSIÖÇI"))>0

ĞÜŞIÖÇİ nedense kirpildi ben kopyala yapistir yaparken. Hosuma gittiginden degil de, sadece oluyor mu diye, boyle denesene.

3

Re: sql: statement too long

Kendi tecrübelerimden bir kaç öneri.

* Main.PRG nin en başına şu satırı ekle :
    =Sys(3055,2040) && FOR and WHERE Clause Complexity
* SQL Tümceni ";" ile birden fazla satıra böl. Tek satırlık çok uzun SQL lerde VFP  bazen bu hatayı veriyor.

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ü

4

Re: sql: statement too long

ugurlu2001 yazdı:

Kendi tecrübelerimden bir kaç öneri.

* Main.PRG nin en başına şu satırı ekle :
    =Sys(3055,2040) && FOR and WHERE Clause Complexity
* SQL Tümceni ";" ile birden fazla satıra böl. Tek satırlık çok uzun SQL lerde VFP  bazen bu hatayı veriyor.

Teşekkürler üstad haloldu sayende

5

Re: sql: statement too long

alan adlarinda türkce karakter asla kullanma smile

6 Son düzenleyen, avrasya34 (14.12.2012 11:34:44)

Re: sql: statement too long

cetinbasoz yazdı:
Visual Fox Pro
Select * ;

    From hasta
Where .F. ;
    into Cursor kayit Readwrite
 
Append From Dbf('hasta') For ;
    (m.cDisplayValue) $Upper(Chrtran(Alltrim(adi),"güsiöçi", "GÜSIÖÇI"));
    OR m.cDisplayValue $Upper(Chrtran(Alltrim(soyadi),"güsiöçi", "GÜSIÖÇI"));
    OR m.cDisplayValue $Upper(Chrtran(Alltrim(padi),"güsiöçi", "GÜSIÖÇI"));
    OR no            =Val(m.cDisplayValue);
    OR genno        =Val(m.cDisplayValue);
    OR pcinsi        =m.cDisplayValue;
    OR pcinsiyeti    =m.cDisplayValue;
    OR ilçe            =m.cDisplayValue;
    OR il            =m.cDisplayValue;
    OR pirki        =(m.cDisplayValue);
    OR m.cDisplayValue $Chrtran[TRANSFORM(mikrochip), chrtran(TRANSFORM(mikrochip), '0123456789', ''), ''];
    OR m.cDisplayValue $Chrtran[TRANSFORM(no), chrtran(TRANSFORM(no), '0123456789', ''), ''];
    OR m.cDisplayValue $Chrtran[TRANSFORM(evtel1), chrtran(TRANSFORM(evtel1), '0123456789', ''), ''];
    OR m.cDisplayValue $Chrtran[TRANSFORM(evtel2), chrtran(TRANSFORM(evtel2), '0123456789', ''), ''];
    OR m.cDisplayValue $Chrtran[TRANSFORM(istel1), chrtran(TRANSFORM(istel1), '0123456789', ''), ''];
    OR m.cDisplayValue $Chrtran[TRANSFORM(istel2), chrtran(TRANSFORM(istel2), '0123456789', ''), ''];
    OR m.cDisplayValue $Chrtran[TRANSFORM(gsm1), chrtran(TRANSFORM(gsm1), '0123456789', ''), ''];
    OR m.cDisplayValue $Chrtran[TRANSFORM(gsm2), chrtran(TRANSFORM(gsm2), '0123456789', ''), ''];
    OR m.cDisplayValue $Chrtran[TRANSFORM(fax), chrtran(TRANSFORM(fax), '0123456789', ''), ''];
    OR Atc(m.cDisplayValue,Chrtran(Alltrim(adres),"güsiöçi", "GÜSIÖÇI"))>0;
    OR Atc(m.cDisplayValue,Chrtran(Alltrim(pal),"güsiöçi", "GÜSIÖÇI"))>0;
    OR Atc(m.cDisplayValue,Chrtran(Alltrim(pnot),"güsiöçi", "GÜSIÖÇI"))>0;
    OR Atc(m.cDisplayValue,Chrtran(Alltrim(pmama),"güsiöçi", "GÜSIÖÇI"))>0;
    OR Atc(m.cDisplayValue,Chrtran(Alltrim(phasta),"güsiöçi", "GÜSIÖÇI"))>0

ĞÜŞIÖÇİ nedense kirpildi ben kopyala yapistir yaparken. Hosuma gittiginden degil de, sadece oluyor mu diye, boyle denesene.

Hocam çalışıyor tabiki tek sorun benim verdiğim kodda şarta uyan tüm kayıtlar listelenirken. sizinkinde sadece şarta uyan ilk kayıt listeleniyor.

soykanozcelik yazdı:

alan adlarinda türkce karakter asla kullanma smile


Soykanhocam daha evelde bu konuda uyarmıştınız ama malesef bunları değiştirmek benim için çok zor. çünkü pek çok yerde kullandım