mysql zeos query ve Incorrect token followed by ':'

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
kazimates
Üye
Mesajlar: 332
Kayıt: 01 Tem 2005 12:40
Konum: Kıbrıs
İletişim:

mysql zeos query ve Incorrect token followed by ':'

Mesaj gönderen kazimates »

aşağıdaki kodlarla programımda yeni bir cari hesap ekelemeye çalıştığımda
Incorrect token followed by ':'
hatası alıyorum sorun nerede olabilir? delphi2010, mysql5, zeos connection, zquery ve datasource kullanıyorum.

Kod: Tümünü seç

procedure TCariEkleForm.IADDClick(Sender: TObject);
var
   bul:boolean;
begin
   if EKodu.Text<>'' then
   begin
      bul:=DM.QCari.Locate('SPECODE',EKodu.Text,[loCaseInsensitive]);
      if bul=true then
         begin
            showmessage('Bu Sigorta Hesap Kodu Hazirda Sistemde Kayitlidir. Lutfen Kontrol Edin');
            EKodu.SetFocus;
         end
      else
         begin
            dm.DSCari.DataSet.Insert;
            with QCariINSERT do
               begin
                  close;
                  sql.clear;
                  sql.Text:='insert into CARI_TABLE(SPECODE, DEFINITION, ADRES1, ADRES2, '+
                            'CITY, TOWN, COUNTRY, POSTCODE, TELEPHONE1, TELEPHONE2, '+
                            'FAXNO, GSMNO, TAXNO, TAXOFFICE, RELATIVE, EMAILADRES, WEBADRES, '+
                            'DRVLICENSE, IDENTITYNO, NOTS, SOCSECNO)'+
                            'VALUES (:SPE, :DEF, :ADR1, :ADR2, :CIT, :TOW, :COUN, :PCODE, :TEL1, '+
                            ':TEL2, :FAX, :GSM, :TNO, :TOFF, :REL, :EMAIL, :WEB, :DRV, :IDENTI, '+
                            ':NOT, :SSNO)';
                   ParamByName('SPE').Value:=EKodu.Text;
                   ParamByName('DEF').Value:=EUnvani.Text;
                   ParamByName('ADR1').Value:=EAdres1.Text;
                   ParamByName('ADR2').Value:=EAdres2.Text;
                   ParamByName('CIT').Value:=EIlcesi.Text;
                   ParamByName('TOW').Value:=EIli.Text;
                   ParamByName('COUN').Value:=EUlke.Text;
                   ParamByName('PCODE').Value:=EPostaKodu.Text;
                   ParamByName('TEL1').Value:=ETelNo1.Text;
                   ParamByName('TEL2').Value:=ETelNo2.Text;
                   ParamByName('FAX').Value:=EFaxNo.Text;
                   ParamByName('GSM').Value:=ECepTel.Text;
                   ParamByName('TNO').Value:=EVergiNosu.Text;
                   ParamByName('TOFF').Value:=EVergiDairesi.Text;
                   ParamByName('REL').Value:=EYetkili.Text;
                   ParamByName('EMAIL').Value:=EEmail.Text;
                   ParamByName('WEB').Value:=EWebAdres.Text;
                   ParamByName('DRV').Value:=EEhliyetNo.Text;
                   ParamByName('IDENTI').Value:=EKimlikNo.Text;
                   ParamByName('NOT').Value:=MNotlar.Text;
                   ParamByName('SSNO').Value:=ESossigortaNo.Text;
                   ExecSQL;
               end;
            DM.QCari.Refresh;
            DM.QCari.Last;
            Application.MessageBox('Kayıt Yapıldı!!!','Çıkmak İçin OK Tuşuna Basınız!!!',MB_OKCANCEL);
         end;
   end else
   begin
       showmessage('Sigorta Hesap Kodu Girilmesi Zorunludur!!!. Lutfen Kontrol Edin');
       EKodu.SetFocus;
   end;
   Cari.CariForm.DBGrid1.Refresh;
end;
Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

Re: mysql zeos query ve Incorrect token followed by ':'

Mesaj gönderen Battosai »

Neden standart yöntemi kullanmuyorsun bilmiyorum ama işini zorlaştırıyorsun....Aldığın hatalar hep SQL cümlesi ile alakalı Kayıt ekleme,silme veya düzenleme işlmeleri için Dataset'in bu iş için tanımlanmış methodlarını kullansan daha iyi olur....Gerekmedikçe SQL ile işlem yaptırma tabiki sorgular hariç....

Kod: Tümünü seç

with QCariINSERT do
Begin
try
insert;
FieldByName('adi_soyadi').asstring:=Edit1.text;
FieldByName('adres').asstring:=Edit2.text;
Post;
Except on E:Exception do 
ShowMessage('Kayıt esnasında hata oluştu'+#13+E.Message);
End;
End;
kazimates
Üye
Mesajlar: 332
Kayıt: 01 Tem 2005 12:40
Konum: Kıbrıs
İletişim:

Re: mysql zeos query ve Incorrect token followed by ':'

Mesaj gönderen kazimates »

sorunu çözdüm biraz enterasan ama yanıt bu ve çalışıyor. sanırım zeos query de fabrikasyon bir farklılık var yapılan değişiklik ise sql cümlesindeki :NOT sözcüğünü :nottt diye ayrıca ParamByName('nottt').Value:=MNotlar.Text; değiştirdim ve tüm sorunum çözüldü. sanırım :not sözcüğü rezerv edilmiş bir sözcük olsa gerek bu arada mesajlarının için teşekkür ederim.
kazimates yazdı:aşağıdaki kodlarla programımda yeni bir cari hesap ekelemeye çalıştığımda
Incorrect token followed by ':'
hatası alıyorum sorun nerede olabilir? delphi2010, mysql5, zeos connection, zquery ve datasource kullanıyorum.

Kod: Tümünü seç

procedure TCariEkleForm.IADDClick(Sender: TObject);
var
   bul:boolean;
begin
   if EKodu.Text<>'' then
   begin
      bul:=DM.QCari.Locate('SPECODE',EKodu.Text,[loCaseInsensitive]);
      if bul=true then
         begin
            showmessage('Bu Sigorta Hesap Kodu Hazirda Sistemde Kayitlidir. Lutfen Kontrol Edin');
            EKodu.SetFocus;
         end
      else
         begin
            dm.DSCari.DataSet.Insert;
            with QCariINSERT do
               begin
                  close;
                  sql.clear;
                  sql.Text:='insert into CARI_TABLE(SPECODE, DEFINITION, ADRES1, ADRES2, '+
                            'CITY, TOWN, COUNTRY, POSTCODE, TELEPHONE1, TELEPHONE2, '+
                            'FAXNO, GSMNO, TAXNO, TAXOFFICE, RELATIVE, EMAILADRES, WEBADRES, '+
                            'DRVLICENSE, IDENTITYNO, NOTS, SOCSECNO)'+
                            'VALUES (:SPE, :DEF, :ADR1, :ADR2, :CIT, :TOW, :COUN, :PCODE, :TEL1, '+
                            ':TEL2, :FAX, :GSM, :TNO, :TOFF, :REL, :EMAIL, :WEB, :DRV, :IDENTI, '+
                            ':NOT, :SSNO)';
                   ParamByName('SPE').Value:=EKodu.Text;
                   ParamByName('DEF').Value:=EUnvani.Text;
                   ParamByName('ADR1').Value:=EAdres1.Text;
                   ParamByName('ADR2').Value:=EAdres2.Text;
                   ParamByName('CIT').Value:=EIlcesi.Text;
                   ParamByName('TOW').Value:=EIli.Text;
                   ParamByName('COUN').Value:=EUlke.Text;
                   ParamByName('PCODE').Value:=EPostaKodu.Text;
                   ParamByName('TEL1').Value:=ETelNo1.Text;
                   ParamByName('TEL2').Value:=ETelNo2.Text;
                   ParamByName('FAX').Value:=EFaxNo.Text;
                   ParamByName('GSM').Value:=ECepTel.Text;
                   ParamByName('TNO').Value:=EVergiNosu.Text;
                   ParamByName('TOFF').Value:=EVergiDairesi.Text;
                   ParamByName('REL').Value:=EYetkili.Text;
                   ParamByName('EMAIL').Value:=EEmail.Text;
                   ParamByName('WEB').Value:=EWebAdres.Text;
                   ParamByName('DRV').Value:=EEhliyetNo.Text;
                   ParamByName('IDENTI').Value:=EKimlikNo.Text;
                   ParamByName('NOT').Value:=MNotlar.Text;
                   ParamByName('SSNO').Value:=ESossigortaNo.Text;
                   ExecSQL;
               end;
            DM.QCari.Refresh;
            DM.QCari.Last;
            Application.MessageBox('Kayıt Yapıldı!!!','Çıkmak İçin OK Tuşuna Basınız!!!',MB_OKCANCEL);
         end;
   end else
   begin
       showmessage('Sigorta Hesap Kodu Girilmesi Zorunludur!!!. Lutfen Kontrol Edin');
       EKodu.SetFocus;
   end;
   Cari.CariForm.DBGrid1.Refresh;
end;
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: mysql zeos query ve Incorrect token followed by ':'

Mesaj gönderen mkysoft »

evet not sözcüğü gibi başka ayrılmış kelimelerde var, kullanma kılavuzunu kontrol ediniz.
Cevapla