procedure TForm3.FormActivate(Sender: TObject);
begin
IF Edit1.text ='' ThenBeginEdit1.Text:='1' ;
end
else
Begin
ERehber.Open;
ERehber.SQL.Add ('SELECT MAX(ECIK_KODU) AS CIKKOD FROM TBLEMANET');
Edit1.Text:=IntToStr(StrToInt('CIKKOD')+1);
end;
'CIKKOD' is not a valid integer value hatası veriyor
ERehber.SQL.Add ('select ECIK_KODU FROM TBLEMANET ORDER BY ECIK_KODU DESC');
ERehber.Open;
Edit1.text := ERehber.FieldByName('ECIK_KODU').ASString;
Edit1.Text:=IntToStr(StrToInt(Edit1.Text)+1);
satırına break point koyun, programı çalıştırın, program bu satıra geldiğinde mouse ile ASString kısmının üzerine gelin ve ECIK_KODU alanının o anki değeri neymiş görün... muhtemelen alanın değeri boş dönüyor... sorgunuzu sqlserver tarafında çalıştırdınız mı, sonuçları gördünüz mü?
procedure TForm2.BitBtn2Click(Sender: TObject);
begin
FRapor.Close;
FRapor.SQL.Clear;
FRapor.SQL.add('SELECT TBLFATUIRS.FATIRS_NO,TBLFATUIRS.TARIH,TBLFATUIRS.GENELTOPLAM,TBLFATUEK.ACIK1 FROM TBLFATUIRS,TBLFATUEK WHERE TBLFATUIRS.FATIRS_NO=TBLFATUEK.FATIRSNO AND FTIRSIP=1 AND TBLFATUEK.ACIK1=:EMANET AND CARI_KODU='+ QuotedStr(Edit1.text));
(Edit1.text));
FRapor.Open;
end;
bu şekilde bir yere varamazsınız... daha önceki mesajlarınızda size sql öğrenmeniz gerektiği, sorgunuzu delphi tarafında uygulamadan önce sql server tarafında çalıştırıp sonuçları görmenizin yararlı olacağını söylemiştim...
ama siz ısrarla işin mantığını öğrenmekten kaçınıp neredeyse her sorgu için buraya bir konu açıyorsunuz...
bu işi iş olarak yapmak istiyorsanız, şuan yanlış yoldasınız...
'TBLFATUEK.ACIK1=:EMANET' eklediğiniz halde SQL Server tarafında gerçekten çalışıyor mu?
Yapmayın lütfen, arkadaşlar size yardımcı olmaya çalışıyor ama sizin de onlara yardımcı olmanız lazım.
Peki; 'TBLFATUEK.ACIK1=:EMANET' bunu sorguya eklemekteki amacınız nedir?
SELECT TBLFATUIRS.FATIRS_NO,TBLFATUIRS.TARIH,TBLFATUIRS.GENELTOPLAM,TBLFATUEK.ACIK1 FROM TBLFATUIRS,TBLFATUEK WHERE TBLFATUIRS.FATIRS_NO=TBLFATUEK.FATIRSNO AND FTIRSIP=1 AND TBLFATUEK.ACIK1='EMANET'
Bu şekilde çalışıyor SQL de denedim . Ama delphi de faturadaki ACIK1 de EMANET olanlar var o kayıtları süzmek istiyorum hatta 'TBLFATUEK.ACIK1=:EMANET' bu alanı çıkardığımda sorgu emanetlerde dahil diğer kayıtlarıda getiriyor ama ben süzmek istiyorum o kaytları.
Internette -delphi sql parametre kullanımı- şeklinde arama yaptığınızda çıkan yüzlerce sonuçtan herhangi bir tanesinde anlatılır bu. Hatta bu forumda da hiç abartısız yüzden fazla örneği olduğuna eminim. Biraz daha gayret lütfen... Daha önce arkadaşın söylediği gibi, Delphi'de SQL kullanımının ilk örnekleri bunlar. Gerçekten en başta bilinmesi gereken konulardan birisi.
:EMANET parametre verdiğinizi gösterir. eğer herhangi bir atama yapmazsanız parametre null kabul edilir. ve veritbanınızda null "boş" olan EMANET isimli kayıtlarınız yoksa boş döner.
FRapor.Open demeden önce
FRapor.ParamByName('EMANET').Value := bilmemne.Text demeniz gerekir.
Not:
1.Forum olarak kimse cevap vermeye üşenmiyor. Fakat forumdaki tecrübeli kişiler olarak izlediğiniz yolun yanlış olduğunu bu işi enine boyuna okumanız/öğrenmeniz gerektiğini söylelemize rağmen ısrarla işi sonundan öğrenmeye çalışıyorsunuz. (Ya da çalışmıyorsunu demek daha doğru olur)
Veritabanı işini adım adım anlatan kitaplar ve/veya online dökümanlar var. Eğer uğraştığınız işleri bir kenara bırakıp da bu kitapları/dökümanları baştan sona sakince okursanuz Okuyup anlamanız 2-3 günü geçmez (ki siz yaklaşık bir haftadır aynı sorguyupişirip pişirip önümüze koyuyorsunuz geçen zamanıınıza yazıık.)
Tekrar söylüyorum bu işleri bir kaç günlüğüne bir kenara bırakın ve veritabanı olayını güzelce bir araştırıp okuyun.
Eğer bir soru soruyorsanız bilenler olarak bu tavsiyelerimizi de göz önünde bulundurun..
2. Sorunuza cevap gelmediği için aynı soruyu başlık olarak (hem de 2 kez) açmaya hakkınız yok. Kişisel çözüm(süzlük)leriniz için forumu bu şekilde kullanıp kirletmeyin.
procedure TForm2.BitBtn2Click(Sender: TObject);
begin
FRapor.Close;
FRapor.SQL.Clear;
FRapor.SQL.add('SELECT TBLFATUIRS.FATIRS_NO,TBLFATUIRS.TARIH,TBLFATUIRS.GENELTOPLAM,TBLFATUEK.ACIK1 FROM TBLFATUIRS,TBLFATUEK WHERE TBLFATUIRS.FATIRS_NO=TBLFATUEK.FATIRSNO AND FTIRSIP=1 AND TBLFATUEK.ACIK1=:EACIK AND CARI_KODU='+ QuotedStr(Edit1.text));
FRapor.Parameters.ParamByName('EACIK').Value := 'EMANET';
FRapor.Open;
end;
Sorguya bir bakarmısınız? Her forma girdiği zaman TBLEMANET tablosundaki ECIK_KODU nu bir artırıp Edit1 e yazdırmak istiyorum MAX ile ECIK_KODU en son değerini buluyorum ama "CSRehber.fieldbyname('ECIK_KODU').asinteger:=CSRehber.fieldbyname('ECIK_KODU').asinteger+1" bu satırda
CSRehber:Field 'ECIK_KODU' not Found diyor lütfen bir el atın .
bu kadar söylenen şeyden sonra hala aynen devam ediyorsunuz ya ne diyeyim...
hata çıktı, hadi kopyala yapıştır foruma moduna döndü iş iyice...
sorguyu sqlserver da çalıştırmış olsanız, yada koda breakpoint koyup debug etseniz kendiniz de göreceksiniz hatayı zaten...
neyse...
unicorn64 yazdı:bu kadar söylenen şeyden sonra hala aynen devam ediyorsunuz ya ne diyeyim...
hata çıktı, hadi kopyala yapıştır foruma moduna döndü iş iyice...
sorguyu sqlserver da çalıştırmış olsanız, yada koda breakpoint koyup debug etseniz kendiniz de göreceksiniz hatayı zaten...
neyse...