SQL de değer alma

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

SQL de değer alma

Mesaj gönderen ozcank »

Arkadaşlar Form a girdiğim de tablodaki sıranın son rakamını 1 artırıp Edit1 e yazdırmak istiyorum bir kod yazdım ama olmadı.Yardımcı olurmusunuz?

Kod: Tümünü seç

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
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Re: SQL de değer alma

Mesaj gönderen ozcank »

" is not a valid integer value " geçerli bir tamsayı değeri değil diyor sorguda bir hatamı yapıyorum bakabilirmisiniz?

Kod: Tümünü seç

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);
Kullanıcı avatarı
unicorn64
Üye
Mesajlar: 919
Kayıt: 04 Nis 2006 08:56
Konum: yine yeniden Ankara ^_^

Re: SQL de değer alma

Mesaj gönderen unicorn64 »

Kod: Tümünü seç

Edit1.text := ERehber.FieldByName('ECIK_KODU').ASString;
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ü?
bazen yükselmek için önce dibi görmek gerekir...

forumda soru sormadan önce bakılmalı bence
daha fazlası için...

yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...

Resim
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Re: SQL de değer alma

Mesaj gönderen ozcank »

'TBLFATUEK.ACIK1=:EMANET' bu satır olmadan çalışıyor ama bu satırı eklediğimde boş dönüyor yardım edebilirmisiniz?

Kod: Tümünü seç

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;
Kullanıcı avatarı
unicorn64
Üye
Mesajlar: 919
Kayıt: 04 Nis 2006 08:56
Konum: yine yeniden Ankara ^_^

Re: SQL de değer alma

Mesaj gönderen unicorn64 »

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...
bazen yükselmek için önce dibi görmek gerekir...

forumda soru sormadan önce bakılmalı bence
daha fazlası için...

yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...

Resim
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Re: SQL de değer alma

Mesaj gönderen ozcank »

bu sorgu SQL de zaten çalışıyor. Ama delphi de bu şekilde çalışmıyor ben sizden yardım istedim sadece
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: SQL de değer alma

Mesaj gönderen SimaWB »

'TBLFATUEK.ACIK1=:EMANET' eklediğiniz halde SQL Server tarafında gerçekten çalışıyor mu? :shock:
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?
There's no place like 127.0.0.1
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Re: SQL de değer alma

Mesaj gönderen ozcank »

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ı.
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: SQL de değer alma

Mesaj gönderen SimaWB »

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.
There's no place like 127.0.0.1
Kullanıcı avatarı
Lost Soul
Üye
Mesajlar: 1064
Kayıt: 01 Nis 2007 02:55
Konum: mekan ANKARA toprak ELAZIĞ
İletişim:

Re: SQL de değer alma

Mesaj gönderen Lost Soul »

: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.


Kolay gelsin
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Re: SQL de değer alma

Mesaj gönderen ozcank »

Lost Soul Kardeşim sana çok teşekkür ederim.Verdiğin ipuçuyla ben sorguyu bu şekilde değiştirdim ve çalıştı

Kod: Tümünü seç

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;



ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Re: SQL de değer alma

Mesaj gönderen ozcank »

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 .

Kod: Tümünü seç

procedure TCARehber.FormActivate(Sender: TObject);
begin
CSRehber.Close;
CSRehber.sql.clear;
CSRehber.sql.add('SELECT MAX(ECIK_KODU) ECIKKODU from TBLEMANET');
CSRehber.open;
CSRehber.fieldbyname('ECIK_KODU').asinteger:=CSRehber.fieldbyname('ECIK_KODU').asinteger+1;
Edit1.Text:=IntToStr(StrToInt(Edit1.Text)+1);
CSRehber.Active:=True;
end;
Kullanıcı avatarı
unicorn64
Üye
Mesajlar: 919
Kayıt: 04 Nis 2006 08:56
Konum: yine yeniden Ankara ^_^

Re: SQL de değer alma

Mesaj gönderen unicorn64 »

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...
bazen yükselmek için önce dibi görmek gerekir...

forumda soru sormadan önce bakılmalı bence
daha fazlası için...

yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...

Resim
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: SQL de değer alma

Mesaj gönderen SimaWB »

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...
:bravo:
There's no place like 127.0.0.1
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Re: SQL de değer alma

Mesaj gönderen ozcank »

SQL server da çalıştırıyorum zaten en son değeri max ile alıyor ben sadece Edit1 e bir artırıp yazdırmada sorun yaşıyorum.
Cevapla