satır bölme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
loxka
Üye
Mesajlar: 214
Kayıt: 18 Ağu 2003 01:10

satır bölme

Mesaj gönderen loxka »

SQL.Add('where((LOWER(Oda)Like LOWER(:param1))and(LOWER(AdiSoyadi)Like LOWER(:param2))and(LOWER(Bölüm)Like LOWER(:param3))and(LOWER(AmeliyatAdi)Like LOWER(:param4))and(LOWER(Anestezi)Like LOWER(:param5))and(LOWER(Doktor)Like LOWER(:param6))and(LOWER(Baslangic)Like LOWER(:param7)and(LOWER(Bitis)Like LOWER(:param8))and(LOWER(Tarih)Like LOWER(:param9))and(LOWER(AmeliyatTipi)Like LOWER(:param10)))')

bu kod tek satırda ve uzun olduğu için hata veriyor nasıl ve nedesinden bölebilirim
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7602
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Merhaba,

herhangi bir and den bölebilirsin. Yani :

SQL.Add('..... and');
SQL.Add('.......');

gibi olacak.

Kolay gelsin.
loxka
Üye
Mesajlar: 214
Kayıt: 18 Ağu 2003 01:10

Mesaj gönderen loxka »

hocam ikinci SQL.ADD de hata veriyor ben yanlış yapmış olabilirim koddan örnekleyerek yardıncı olurmusunuz
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

mevcut kodu soyle bolebiliriz mesela.... Tabi kodda problem olmadigini varsayiyorum....

Kod: Tümünü seç

SQL.Add('where((LOWER(Oda)Like LOWER(:param1))and(LOWER(AdiSoyadi)Like LOWER(:param2))and(LOWER(Bölüm)Like LOWER(:param3))and');
SQL.Add('(LOWER(AmeliyatAdi)Like LOWER(:param4))and(LOWER(Anestezi)Like LOWER(:param5))and(LOWER(Doktor)Like LOWER(:param6))and');
SQL.Add('(LOWER(Baslangic)Like LOWER(:param7)and(LOWER(Bitis)Like LOWER(:param8))and(LOWER(Tarih)Like LOWER(:param9))and(LOWER(AmeliyatTipi)Like LOWER(:param10)))');
loxka
Üye
Mesajlar: 214
Kayıt: 18 Ağu 2003 01:10

Mesaj gönderen loxka »

ikinci satırdaki sql.add ibaresinde
Missing operator or semicolon hatası veriyor
kodun tamamı aşağıda


[/code]Procedure TForm3.SorguYap(Edit1, Edit2, Edit3, Edit4, Edit5, Edit6, Edit7, Edit8, Edit9, Edit10 : String);
begin
// İlk olarak başında ve sonundaki boşluklar temizlensin.
Edit1 := Trim(Edit1);
Edit2 := Trim(Edit2);
Edit3 := Trim(Edit3);
Edit4 := Trim(Edit4);
Edit5 := Trim(Edit5);
Edit6 := Trim(Edit6);
Edit7 := Trim(Edit7);
Edit8 := Trim(Edit8);
Edit9 := Trim(Edit9);
Edit10 := Trim(Edit10);
With Query1 do
begin
Active := False;
SQL.Clear;
SQL.Add('Select * from giris');
If (Edit1 <> '') OR (Edit2 <> '') OR (Edit3 <> '') OR (Edit4 <> '') OR (Edit5 <> '') OR (Edit6 <> '') OR (Edit7 <> '') OR (Edit8 <> '')OR (Edit9 <> '')OR (Edit10 <> '')then
begin // Editler boş ise tüm liste gelir, herhangi biri dolu ise
If (Edit1 <> '') AND (Edit2 <> '') AND (Edit3 <> '') AND (Edit4 <> '') AND (Edit5 <> '') AND (Edit6 <> '')AND (Edit7 <> '')AND (Edit8 <> '')AND (Edit9 <> '')AND (Edit10 <> '')then
SQL.Add('where((LOWER(Oda)Like LOWER(:param1))and(LOWER(AdiSoyadi)Like LOWER(:param2))and(LOWER(Bölüm)Like LOWER(:param3))and')
SQL.Add('(LOWER(AmeliyatAdi)Like LOWER(:param4))and(LOWER(Anestezi)Like LOWER(:param5))and(LOWER(Doktor)Like LOWER(:param6))and')
SQL.Add('(LOWER(Baslangic)Like LOWER(:param7)and(LOWER(Bitis)Like LOWER(:param8))and(LOWER(Tarih)Like LOWER(:param9))and(LOWER(AmeliyatTipi)Like LOWER(:param10)))')

else If Edit1 <> '' then SQL.Add('where (LOWER(Oda) Like LOWER(:param1))')
else If Edit2 <> '' then SQL.Add('where (LOWER(AdiSoyadi) Like LOWER(:param2))')
else If Edit3 <> '' then SQL.Add('where (LOWER(Bölüm) Like LOWER(:param3))')
else If Edit4 <> '' then SQL.Add('where (LOWER(AmeliyatAdi) Like LOWER(:param4))')
else If Edit5 <> '' then SQL.Add('where (LOWER(Anestezi) Like LOWER(:param5))')
else If Edit6 <> '' then SQL.Add('where (LOWER(Doktor) Like LOWER(:param6))')
else If Edit7 <> '' then SQL.Add('where (LOWER(Baslangic) Like LOWER(:param7))')
else If Edit8 <> '' then SQL.Add('where (LOWER(Bitis) Like LOWER(:param8))')
else If Edit9 <> '' then SQL.Add('where (LOWER(Tarih) Like LOWER(:param9))')
else If Edit10 <> '' then SQL.Add('where (LOWER(AmeliyatTipi) Like LOWER(:param10))');
end; // If editlerden en az birisi dolu ise...
If Edit1 <> '' then
Params.ParamByName('param1').AsString:='%'+Edit1+'%';
If Edit2 <> '' then
Params.ParamByName('param2').AsString:='%'+Edit2+'%';
If Edit3 <> '' then
Params.ParamByName('param3').AsString:='%'+Edit3+'%';
If Edit4 <> '' then
Params.ParamByName('param4').AsString:='%'+Edit4+'%';
If Edit5 <> '' then
Params.ParamByName('param5').AsString:='%'+Edit5+'%';
If Edit6 <> '' then
Params.ParamByName('param6').AsString:='%'+Edit6+'%';
If Edit7 <> '' then
Params.ParamByName('param7').AsString:='%'+Edit7+'%';
If Edit8 <> '' then
Params.ParamByName('param8').AsString:='%'+Edit8+'%';
If Edit9 <> '' then
Params.ParamByName('param9').AsString:='%'+Edit9+'%';
If Edit10 <> '' then
Params.ParamByName('param10').AsString:='%'+Edit10+'%';
Active := True;
end;
end;
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Selam.

- Hımm. Mesajı erken yazmışım. Önceki hale göre yazmıştım.

// İptal //
- Hatan AND'den önce ve sonra boşluk bırakmamış olman.

- Takip eden satırlarda tırnak imlecinden sonra bir boşluk bırak.


- SQL ile ilgili hatalar aldığında, hatadan önce mevcut sonucu mesaj penceresinden görmek için Query'i Active edeceğin satırdan önce ShowMessage(Query1.SQL.Text); dersen hatalı olabilecek satırı görebilirsin.
En son mrmarman tarafından 08 Oca 2004 01:46 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Resim
Resim ....Resim
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7602
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

satırlardan birinin sonuna ; (noktalı virgül) koymamışsın.

Kolay gelsin.
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

Kod: Tümünü seç

If (Edit1 <> '') AND (Edit2 <> '') AND (Edit3 <> '') AND (Edit4 <> '') AND (Edit5 <> '') AND (Edit6 <> '')AND (Edit7 <> '')AND (Edit8 <> '')AND (Edit9 <> '')AND (Edit10 <> '')then
begin // ------> [b]BUNU KOYMAMIŞSIN[/b]
SQL.Add('where((LOWER(Oda)Like LOWER(:param1))and(LOWER(AdiSoyadi)Like LOWER(:param2))and(LOWER(Bölüm)Like LOWER(:param3))and');
SQL.Add('(LOWER(AmeliyatAdi)Like LOWER(:param4))and(LOWER(Anestezi)Like LOWER(:param5))and(LOWER(Doktor)Like LOWER(:param6))and');
SQL.Add('(LOWER(Baslangic)Like LOWER(:param7)and(LOWER(Bitis)Like LOWER(:param8))and(LOWER(Tarih)Like LOWER(:param9))and(LOWER(AmeliyatTipi)Like LOWER(:param10)))')
end // ------> [b]BUNU KOYMAMIŞSIN[/b]
ayrıten noktalı virgülleri unutmuşsun satır sonlarında.
Cevapla