Delphi2005de hazırlanan projenin Delphi7 de çuvallaması

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Kullanıcı avatarı
NewMember
Üye
Mesajlar: 990
Kayıt: 29 Haz 2005 06:57
Konum: Bursa

Delphi2005de hazırlanan projenin Delphi7 de çuvallaması

Mesaj gönderen NewMember »

Arkadaşlar delphi 2005 te hazırlanmış bir projeyi delphi 7 de açıp derliyorum.Oluşan exede hatalar oluyor.
Ama exe üretirken hata vermiyor.Oluşan exe çalışma anında hata veriyor.Mesela şu aşağıdaki kodlar Delphi 20005 ile derlenen exede sorunsuz çalışırken Delphi 7 ile derlenince çalışmıyor.

Kod: Tümünü seç

dm.MuayeneDataset.FieldByName('HASTAKODU').Value := hastakodu;
DM.MuayeneDataset.FieldByName('MUAYENETARIHI').Value := Date;
Ama

Kod: Tümünü seç

Value
yerine

Kod: Tümünü seç

.AsFloat
yine

Kod: Tümünü seç

Value 
yerine

Kod: Tümünü seç

AsDateTime
yazınca çalışıyor.Aslında belki bu normal ama derlerken hata vermemesi ilginç.

Kod: Tümünü seç

 MynTazelemeSQL := 'SELECT MUAYENE.KAYITID,MUAYENE.HASTAKODU,HASTALAR.ADISOYADI,MUAYENE.MUAYENETARIHI,MUAYENE.DOKTOR,';
  MynTazelemeSQL := MynTazelemeSQL + 'MUAYENE.ANAMNMEZ,MUAYENE.BULGULAR,MUAYENE.TEDAVI,MUAYENE.RAPOR,MUAYENE.ILACLAR,';
  MynTazelemeSQL := MynTazelemeSQL + 'MUAYENE.NABIZ,MUAYENE.ATES,MUAYENE.TANSIYON,MUAYENE.LABORATUVAR,MUAYENE.SIRANO,';
  MynTazelemeSQL := MynTazelemeSQL + 'MUAYENE.TESHIS,HASTALAR.RESIMYOL FROM MUAYENE,HASTALAR WHERE   HASTALAR.KAYITID=MUAYENE.HASTAKODU ';
dm.MuayeneDataset.SelectSQL.Clear;
    dm.MuayeneDataset.SelectSQL.add(MYNTazelemeSQL);
    dm.MuayeneDataset.SelectSQL.Add('and upper(' + 'HASTALAR.ADISOYADI' + ')');
    dm.MuayeneDataset.SelectSQL.Add(' like upper(''' + Arama.Text + '%' + ''') and MUAYENE.LABORATUVAR=:Par and MUAYENE.MUAYENETARIHI BETWEEN :BASLAMA AND :BITIS');
    dm.MuayeneDataset.ParamByName('Par').AsString := '1'; //Yani lab tetkiki istenen hastalar
    dm.MuayeneDataset.ParamByName('BASLAMA').AsDate := DtBaslama.Date;
    dm.MuayeneDataset.ParamByName('BITIS').AsDate := DtBitis.Date;
    dm.MuayeneDataset.Open;

İki tablodan veri çeken datasetlere ait SQL sorguları hata vermemekle beraber çalışmıyor.Database Firebird Datasetim IBDataset.Yukarıdaki SQL sorgusu Delphi 2005 ile derlenince çalışıyor Delphi7 de derlenince bir sonuç döndürmüyor.

Delphi 7 ile Delphi 2005 te aynı bileşenler yüklü.Component açısından bir sıkıntı yok.Böyle bir şey başına gelen varmı acaba.Bu proje delphi 7 üzerinden geliştirilmeye devm edecek.Fikirlerinize ihtiyacım var.
Teşekkürler....
En son NewMember tarafından 22 Eki 2006 01:03 tarihinde düzenlendi, toplamda 2 kere düzenlendi.
mceL
Üye
Mesajlar: 56
Kayıt: 28 Eyl 2003 01:19
Konum: Bursa
İletişim:

Mesaj gönderen mceL »

Tahminimce;
Value olarak "variant" olabilir değişkenler ve delphi7'de çevirirken sorun çıkartabilir. Bu yüzden derlenirken hata vermemişlerdir. Çevirirken sorun çıkartmış olabilirler.
Kullanıcı avatarı
NewMember
Üye
Mesajlar: 990
Kayıt: 29 Haz 2005 06:57
Konum: Bursa

Mesaj gönderen NewMember »

mceL yazdı:Tahminimce;
Value olarak "variant" olabilir değişkenler ve delphi7'de çevirirken sorun çıkartabilir. Bu yüzden derlenirken hata vermemişlerdir. Çevirirken sorun çıkartmış olabilirler.
Haklı olabilirsin.Ancak bu alanda tuttuğum veriler hatalı dönüşüme neden olabilecek veriler değil.Aslında value değerini pek kullanmam ama bir iki yerde kullanmışım ve bu saatten sonra tamamen bıraktım.


Ama SQL ifadelerinin çalışmaması ilginç.Orayı hala çözemedim. :shock: :shock: :shock:
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

NULL

Mesaj gönderen sabanakman »

Mrb; NULL değer öyle değil ama. Null bir değeri hiç bir tipte (Variant dışında) değişkene aktaramazsınız. Mesela String olarak St:=Alan.AsString metodu '' değerini verse de St:=Alan.Value olarak kullanılınca hata çıkar. Aynı durum Integer ve diğer tipler içinde geçerlidir. Kolay gelsin.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kullanıcı avatarı
NewMember
Üye
Mesajlar: 990
Kayıt: 29 Haz 2005 06:57
Konum: Bursa

Mesaj gönderen NewMember »

haklısın.Demekki 2005 sürümünde bunu derlerken özel bir hata kontrolü ekliyor.Ama SQL ifadelerini anlamadım.
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Mesaj gönderen sabanakman »

Bende :) baktın olmuyor sorgularda parametre sevdasından vaz geç.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

- Arkadaşlar olmayınca pes etmek yok. :lol: Nerde kaldı araştırmacı programcılık. Forumda bir sürü örnek vardır hiçbirine rastlamadınız herhalde ki sonuç alamamışsınız. Cevap veren arkadaşlar dahil. :oops:

- Zaten parametrik yapıda önce yapılacak iş, parametrenin tipini belirlemek ondan sonra yola devam etmektir. Şöyle ki...

- Date tipinde bir parametre varsa önce onun ftDate tipinde (Uses'da yoksa DB eklenmelidir) olduğunu bildirip ondan sonra değer atamasını yapmalısınız.

Kod: Tümünü seç

    dm.MuayeneDataset.ParamByName('BASLAMA').DataType := ftDate; 
    dm.MuayeneDataset.ParamByName('BASLAMA').Value := DtBaslama.Date; 
    dm.MuayeneDataset.ParamByName('BITIS').DataType := ftDate; 
    dm.MuayeneDataset.ParamByName('BITIS').AsDate := DtBitis.Date; 
dersen çalışacaktır.
Resim
Resim ....Resim
Kullanıcı avatarı
NewMember
Üye
Mesajlar: 990
Kayıt: 29 Haz 2005 06:57
Konum: Bursa

Mesaj gönderen NewMember »

mrmarman yazdı:- Arkadaşlar olmayınca pes etmek yok. :lol: Nerde kaldı araştırmacı programcılık. Forumda bir sürü örnek vardır hiçbirine rastlamadınız herhalde ki sonuç alamamışsınız. Cevap veren arkadaşlar dahil. :oops:

- Zaten parametrik yapıda önce yapılacak iş, parametrenin tipini belirlemek ondan sonra yola devam etmektir. Şöyle ki...

- Date tipinde bir parametre varsa önce onun ftDate tipinde (Uses'da yoksa DB eklenmelidir) olduğunu bildirip ondan sonra değer atamasını yapmalısınız.

Kod: Tümünü seç

    dm.MuayeneDataset.ParamByName('BASLAMA').DataType := ftDate; 
    dm.MuayeneDataset.ParamByName('BASLAMA').Value := DtBaslama.Date; 
    dm.MuayeneDataset.ParamByName('BITIS').DataType := ftDate; 
    dm.MuayeneDataset.ParamByName('BITIS').AsDate := DtBitis.Date; 
dersen çalışacaktır.

Muharrem Hocam Haklısınız.
Aslında bugüne kadar araştırmadım desem yalan olur ama dediğiniz gibi bir mana veremedim.
Value kullanımında zaten dediğim gibi pek alışkanlığım olmamasına rağmen bir kaç yerde kullanmışım ve onlardan vazgeçtim.Sadece bu Value değerlerinin tip dönüşümlerinde 2005 idesiyle derlenen exede hata vermemesi, 7 idesiyle derlenince hata vermesi kafamı karıştırmıştı.Ama bu hatalar sanırım arkadaşlarında belirttiği gibi NULL değerler alınca yapıyor.2005 idesi derleme yapıyorken bu hata kontrolünü de ekliyor belki.


Sizin söylediğiniz konuya gelince daha önce datasetlere atanan parametrelerin datatypelerini incelemiş üzerinr kafa yormuştum ama sanki bunların opsiyonel olabileceği kanaatine vardım nedense.
Şu sebepleki;

***

Kod: Tümünü seç

dm.MuayeneDataset.ParamByName('BASLAMA').Value.Date 

Kod: Tümünü seç

dm.MuayeneDataset.ParamByName('XXX').AsString 

Kod: Tümünü seç

dm.MuayeneDataset.ParamByName('YYYY').AsInteger 

Kod: Tümünü seç

dm.MuayeneDataset.ParamByName('MMM').AsFloat 
derken zaten verinin tipini belirtiyoruz.Yani Zaten dm.MuayeneDataset.ParamByName('YYYY').AsDate derken birde ftDate diye tipini belirtmenin gerekli olmayacağı sonucuna varmıştım.Ana yanılmışım demekki.(Şu an deneme imkanım yok ama deneyince sonuc yazarım).

Birde şu ihtimali düşünmüştüm.2005 idesiyle gelen IBX bileşenlerinin daha güncel olmasının bu farkı doğurabileceğini düşünmüştüm.

Bundan sonra sorgularımda Parametrelerin tipinide belirteceğim ancak aynı sorgu sizce 2005 de derlenince çalışıyorda neden delphi 7 de derlenince çalışmıyor olabilir.

Zaman ayırdığınız için teşekkür ederim.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

@NewMember yazdı:Muharrem Hocam Haklısınız.
Aslında bugüne kadar araştırmadım desem yalan olur ama dediğiniz gibi bir mana veremedim.
- Mana veremedim dediğim bişey yok ki. Yanlış mesaja baktın sanırım. :?: Forumdaki verdiğim örneklere bakarsan öteden beri ne zaman parametre kullansam, text alanlar dışındaki her tip için (Boolean, Numeric, Date, Time) ilk önce DataType tanımı hep yapmışımdır zaten.

- Sorduğun sorunun cevabı ise variant. :idea:
Resim
Resim ....Resim
Kullanıcı avatarı
NewMember
Üye
Mesajlar: 990
Kayıt: 29 Haz 2005 06:57
Konum: Bursa

Mesaj gönderen NewMember »

Mana veremedim dediğim bişey yok ki. Yanlış mesaja baktın sanırım.
Haklısınız.Mana veremeyen benim sizi kastetmemiştim.
Orda yanlış cümle kullanmışım.Türkçenin de try excepti olsaydı keşke. :lol: :lol:
Kullanıcı avatarı
NewMember
Üye
Mesajlar: 990
Kayıt: 29 Haz 2005 06:57
Konum: Bursa

Mesaj gönderen NewMember »

Hocam kusura bakmayın uzattığımın farkındayım ama aşağıdaki kod IBDataset tarafından desteklenmiyor.

Kod: Tümünü seç

dm.MuayeneDataset.ParamByName('BASLAMA').DataType 
Yani DataType kodu.
Sadece IBQueryde çalışıyor.Bu durumda tüm sorgularımı IBdatasetle yaptığımdan ne yapmam gerek sizce?
Teşekkürler.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

- Sorduğun soruya tekrar bir bakıp örnek hazırlayım dedim ama orjinal sorunun üzerinde değişiklik yapmışsın. :!:

- Desktop bilgisayarımda Turbo Delphi kurulu. Hazırladığım örneği (aşağıdaki kod) denedim sorunsuz çalıştı. Başka bir hatadan dolayı yanılmış olamaz mısın ?

- Boş bir proje aç ve aşağıdaki kodu bir TButton click olayına yapıştır. Bu örnek için forma herhangi bir IB bileşeni eklemek zorunda değilsin. Dinamik olarak kendiliğinden kod içinde create edilerek free ediliyor.

- Sonra Interbase veritabanı demosu olan EMPLOYEE.GDB dosyasını bu proje dizinine kopyala ve direkt denemeni yap. Ya da veritabanı adını kendininkiyle değiştir. Sorguyu da tablo ve tarih alanların ile güncelleyip dene.

- Sonuç mesaj olarak kayıt sayısı verirse sorun yok demektir.

Yoksa, Uses'a IBDatabase, IBCustomDataSet eklenecek.

Kod: Tümünü seç

Var
  IBdb : TIBDatabase;
  IBta : TIBTransAction;
  IBds : TIBDataSet;
begin
  IBdb := TIBDatabase.Create(Nil);
  IBta := TIBTransAction.Create(Nil);
  With IBdb do begin
    DatabaseName := ExtractFilePath(Application.ExeName)+'EMPLOYEE.GDB';
    DefaultTransaction := IBta;
    Params.Values['user_name'] := 'SYSDBA';
    Params.Values['PassWord']  := 'masterkey';
    Params.Values['lc_ctype']  := 'WIN1254';
    LoginPrompt  := False;
  end;

  IBds := TIBDataSet.Create(Nil);
  With IBds do begin
    Database            := IBdb;
    SelectSQL.Text      := 'SELECT Count(*) AS KaySay FROM EMPLOYEE WHERE HIRE_DATE Between :D1 AND :D2';
    ParamByName('d1').AsDate := StrToDate('01.04.1989');
    ParamByName('d2').AsDate := StrToDate('01.04.1990');
    Active              := True;
    ShowMessageFmt('Kayıt Sayısı : %d', [FieldByName('KaySay').AsInteger]);
    Active              := False;
  end;
  IBds.Free;
  IBdb.Free;
  IBta.Free;
end;
Resim
Resim ....Resim
Kullanıcı avatarı
NewMember
Üye
Mesajlar: 990
Kayıt: 29 Haz 2005 06:57
Konum: Bursa

Mesaj gönderen NewMember »

Muharrem Hocam;
Söylediğniz gibi yaptım.Sonuç döndürüyor ama galiba ben ne demek istediğimi anlatamadım.

Siz yukarıda parametrik sorgulamalardan önce mutlaka Parametrenin DataType özelliğine Data Tipini atadığınızı (Text haricinde Boolean,Numeric,Double,Integer v.s) yazmıştınız.Ve hatta bir önceki mesajınızda da

Kod: Tümünü seç

dm.MuayeneDataset.ParamByName('BASLAMA').DataType := ftDate; 
    dm.MuayeneDataset.ParamByName('BASLAMA').Value := DtBaslama.Date; 
    dm.MuayeneDataset.ParamByName('BITIS').DataType := ftDate; 
    dm.MuayeneDataset.ParamByName('BITIS').AsDate := DtBitis.Date
şeklinde bir kullanım yaparsam çalışacağını söylediniz.(Hatta usese db eklememiz gerektiğini de yazmıştınız.)

Ancak ben editörde bu kodu yazdıramadım.Yani demek istediğim şuki,

Kod: Tümünü seç

dm.MuayeneDataset.ParamByName('BASLAMA').
yazıp noktayı koyduktan sonra listelenen seçeneklerin arasında

Kod: Tümünü seç

 DataType 
seçeneği çıkmıyor.(IBdataset için )Eğer ben kendim yazarsam da derleyici derlemiyor.

Ama IBDataset değilde IBQuery kullanırsam sizin söylediğiniz DataType özelliğini kullanmama izin veriyor derleyici.

Ayrıca IBQuery ve IBDatasetin properties penceresindeki özelliklerine de baktığım zaman, IBQuerynin PArams seçeneklerinin olduğunu orda DataType ve Value değerlerinin seçilebildiğini, ancak IBDataset içinse böyle özellikler olmadığını görüyorum.

Ayrıca sizin vermiş olduğunuz örnekte IBdataset kullanılıyor ancak

Kod: Tümünü seç

ParamByName('XXX').DataType 
şeklinde bir kullanım yok.Benim öğrenmek istediğimde bu tip bir kullanım sadece IBQuery de mi kullanılıyor, yoksa IBDatasette de kullanılırmı?

Eğer IBDataset de de kullanılıyorsa (Ki verdiğiniz örnekte böyle bir kod yok) acaba benim derleyicide yada IBX bileşenlerinde bir sorun olabilrimi?

Sizide gerçekten yordum.Kusura Bakmayın.
Hakkınızı helal edin.

Not=Yeni Mesaj eklemek yerine yanlışlıkla ilk mesajı editlemişim.İlk mesajın orijinalini attım.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

@NewMember yazdı:Muharrem Hocam;
Söylediğniz gibi yaptım.Sonuç döndürüyor ama galiba ben ne demek istediğimi anlatamadım.
Hocam. Amaç çözüm üretmek mi bağcıyı dövmek mi ? :lol:

- Verdiğim örnek hem Delphi 2005 hem de Delphi 7'de sonuç döndürüyorsa (yani derlerken ve çalışma anında hata vermiyorsa) yaptığın hata başka bir yerde bu açık.

- Önceki mesajından sonra sorundaki koda tekrar döneyim dedim ama sen kodu silmiştin (uyarımdan sonra şimdi geri getirmişsin bu doğru davranış)

- Hatan, parametrelere önceden DataType tanımı ile ilgili bir konu değil bu açıkça görülüyor. Kodlarını tekrar gözden geçirip hatanın kaynağına odaklan.

- Hatanı bulabilmek için SQL sorgunu parçalara ayır. Hemen istediğin sonuca değil adım adım oluşturarak hata aldığın noktaya erişmeye çalış.

- IBDataSet kullandığında önceden DataType özelliği veremiyorsun çünkü SQLType içerisinde bulunuyor. Senin kodundan copy/paste yaptığımdan daha önce dikkat etmeyip IBQuery kullandığını değerlendirmişim.

- Ek olarak verilen hatayı da yaz da neymiş bu meşhur ettiğin hata bilelim . :lol:

- Kodununu daha açık bir şekilde okunabilir yapıp, üzerinde oynayabilir hale dönüştürerek dilediğin satırı // ile comment altına alarak devre dışı bırakabilmeye uygun hale dönüştür.

- Aşağıda bunu senin için yaptım. Kendi kodunun yedeğini al ve onun yerine bu şekilde copy/paste yapıp denemelere başla.

Kod: Tümünü seç

  MynTazelemeSQL :=  ' SELECT '
                   + ' MUAYENE.KAYITID'
                   + ',MUAYENE.HASTAKODU'
                   + ',HASTALAR.ADISOYADI'
                   + ',MUAYENE.MUAYENETARIHI'
                   + ',MUAYENE.DOKTOR'
                   + ',MUAYENE.ANAMNMEZ'
                   + ',MUAYENE.BULGULAR'
                   + ',MUAYENE.TEDAVI'
                   + ',MUAYENE.RAPOR'
                   + ',MUAYENE.ILACLAR'
                   + ',MUAYENE.NABIZ'
                   + ',MUAYENE.ATES'
                   + ',MUAYENE.TANSIYON'
                   + ',MUAYENE.LABORATUVAR'
                   + ',MUAYENE.SIRANO'
                   + ',MUAYENE.TESHIS'
                   + ',HASTALAR.RESIMYOL'
                   + ' FROM MUAYENE, HASTALAR'
                   + ' WHERE HASTALAR.KAYITID = MUAYENE.HASTAKODU';
  With dm.MuayeneDataset do begin
    SelectSQL.Clear;
    SelectSQL.add( MynTazelemeSQL );
    SelectSQL.Add(' and upper( HASTALAR.ADISOYADI ) like upper('+ QuotedStr(Arama.Text + '%') +')');
    SelectSQL.Add(' and MUAYENE.LABORATUVAR = :Par');
    SelectSQL.Add(' and MUAYENE.MUAYENETARIHI BETWEEN :BASLAMA AND :BITIS');
      ParamByName('Par').AsString   := '1'; //Yani lab tetkiki istenen hastalar
      ParamByName('BASLAMA').AsDate := DtBaslama.Date;
      ParamByName('BITIS').AsDate   := DtBitis.Date;
    Active := True;
  end;
- Sonra tüm AND satırlarını ve parametre atamalarının başına // koyarak devre dışı kalmalarını sağla. Kodu çalışmıyor dediğin Delphi 7'de derle ve çalıştır. İlgili alana arama yapacağın text'i gir ve arama yaptır. Sonuç olarak tüm kayıtlar gelmelidir. Gelirse sorun yok gelmezse sorun daha önce bir yerlerde.

- Sorun olmamışsa, sıradaki işlem Parametre içeren AND satırının başındaki // işaretini kaldır ve Parametre atamalarını ( parambyname ) serbest bırak. Tekrar dene..

- Bu dememeleri hata bulana kadar tekrarlarsın. Sonra da hatana ulaşırsın. Programcılıkta hata geliyor ne yapıcam demek yok. Araştıracak -hırsız polis oyunu denir buna- hataya ulaşacak ve bertaraf edeceksin.
Resim
Resim ....Resim
Kullanıcı avatarı
NewMember
Üye
Mesajlar: 990
Kayıt: 29 Haz 2005 06:57
Konum: Bursa

Mesaj gönderen NewMember »

mrmarman yazdı: Hocam. Amaç çözüm üretmek mi bağcıyı dövmek mi ?
Estağfirullah. :(
Ne size nede bir başka forum üyesine bu tarz bir yaklaşımda bulunmam mümkün değil.Hele hele bir çok zor (bana göre zor) sorunuma çözüm bulan size karşı böyle bir tavır büyük haksızlık olurdu.
Eğer birisi benim sorunum için oturup bir tek harf bile yazıyorsa ben ona ancak teşekkür eder, minnettar olurum.Burada ki bir çok kişinin kendi zamanından fedakarlık ederek burada bulunduğunun bilincinde olan bir kişiyim.
Ama sizi bu düşünceye iten bir önceki mesajımda çok ayrıntılı olarak açıklama yapmam ve özellikle IBDataset'in ParamByName.DataType özelliğinin olmadığı konusunda odaklanmam ise;
Burada da tamamen orada da söylediğim gibi IBX bileşenlerinin güncel olmamasından dolayı olabilirmi sorusunu sormamdı ve o an 2005 IDE si yanımda olmadığından açıp 2005 IDE'sinde de bu kodu destekliyormu desteklemiyormu diye bakamadım.Bu konuya çok fazla odaklanmamın bir diğer sebebi de şuydu ki siz ilk mesajınızda bu atamaları mutlaka yapın demeniz de hatanın burdan kaynaklanabileceğini düşünmemdir.
Ayrıntılı açıklama yapmamın bir diğer sebebide, konuyu iyice açıklığa getirip daha fazla vaktinizi almamak içindi.
- Önceki mesajından sonra sorundaki koda tekrar döneyim dedim ama sen kodu silmiştin (uyarımdan sonra şimdi geri getirmişsin bu doğru davranış)
Son gönderdiğim mesajı yanlışlıkla ilk mesaja editleyerek göndermişim.Sonra siz söyleyince farkettim ve orijinalini attım.
- Verdiğim örnek hem Delphi 2005 hem de Delphi 7'de sonuç döndürüyorsa (yani derlerken ve çalışma anında hata vermiyorsa) yaptığın hata başka bir yerde bu açık.


Evet.Sanırım siz verdiğiniz örneği Turbo Delphide derlediniz.Bende Delphi 7 de derledim.Her ikisinde de çalışıyor.Zaten programımdaki diğer sorgularda sorun yok.Bu ve bunun gibi bir kaç sorguda problem vardı.Ama dediğiniz gib bu hataya neden başka bir konu olmalı ama nedense ben Delphi 2005 Win32 ile Delphi 7 nin aynı özelliklere sahip derleyiciler olduğunu düşünerek birinde çalışan sorgunun diğerinde neden çalışmadığı konusuna odaklandım.
- Ek olarak verilen hatayı da yaz da neymiş bu meşhur ettiğin hata bilelim .


Hata da vermiyor.Sonuçda döndürmüyor.

Son söylediğiniz tavsiyelere ise uyacağım.Bunlar benim için bir tecrübe olacaktır.Ama hatayı olması muhtemel yerde değil her yerde aramak gerektiğini kendime prensip edinsem daha iyi olacak heralde.


Hatayı bulunca nerde yanlış yaptığımıda buraya yazarım.Yardımlarınız ve ilginiz için gerçekten teşekkür ederim.

Size ve tüm forum üyelerine iyi bayramlar.
Herkesin Bayramı Kutlu Olsun. :alkis: :alkis: :alkis:
Cevapla