SQL Sorgu problemi.

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
mrtblt
Üye
Mesajlar: 222
Kayıt: 02 Tem 2007 05:13

SQL Sorgu problemi.

Mesaj gönderen mrtblt »

Musteri bakiyesi toplattirmak istiyorum. Assagidaki kodu yazinca

Kod: Tümünü seç

  dm.lks_cari.first;
  while not dm.lks_cari.eof do
  begin
    dm.lks_cari.edit;
    str1:= dm.lks_cari.FieldByName('cl_name').asstring;
    dm.q_char.Close;
    dm.q_char.SQL.Clear;
    dm.q_char.SQL.Add('select sum(amount*carpan) as bky from lks_char where clientref =');
    dm.q_char.SQL.Add(str1);
    dm.q_char.Open;
    dm.lks_cari.FieldByName('bakiye').asbcd :=dm.q_char.FieldByName('bky').asbcd;
    dm.lks_cari.post;
    dm.lks_cari.Next;
  end;
soyle bir hata mesaji aliyorum :
First chance exception at $7C81EB33. Exception class EIBInterBaseError with message 'Dynamic SQL Error
SQL error code = -104
Token unknown - line 2, column 8
INCO'.
Buradaki INCO Musterinin adinin bir parcasi. Musterinin adi AGROMA INCO SRL.
Sanirim sorgu musterinin isminin sadece ilk kelimesini aliyor ve sonrasini tanimiyor. Fakat musterinin isminin tamaminin alinmasi lazim sorgu tarafindan.
Bu durumu nasil cozebilirim.

Not aslinda bu isi veritabanindan direkt sp ve trigger vasitasi ile cozmek gerekiyor. Ama trigger olusturmakta cok acemiyim. Bir kac kez denedim basaramadim. Bu yuzden Delphide halletmeye calistim.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
parametre kullanmanı tavsiye ederim.
sorunun sebebi müşteri adını tırnak içine almaman. müşteri adında tırnak olmadığı için sütun olarak algılıyor ve sütun yok diyor. parametre kullanarak bunu aşabilirsin. yoksa tırnaklarla uğraşman lazım.

Kod: Tümünü seç

dm.q_char.SQL.Add(''''+str1+'''');
yaparsan düzelir. bide quotedstr var istersen onuda kullanabilirsin.
aramalar için triger değil stored procedure yapman lazım. :wink:
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Cevapla