Edite veri getirme sorunu

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
KingStriker
Üye
Mesajlar: 48
Kayıt: 16 Eki 2006 01:00
Konum: IstanbuL

Edite veri getirme sorunu

Mesaj gönderen KingStriker »

Kod: Tümünü seç

procedure TParaIade.Button2Click(Sender: TObject);
begin

query1.SQL.Clear;
Query1.SQL.Add('select * from paraver where serino =:''' + edit1.Text + '''');
edit2.Text:=Query1.fieldbyname('serino').asString;

end;
arkadaslar paradox db de böle bi sorgu yazdım
Paraver tablosundan serino'su edit1 in içindekine eşit olan kaydın serinosunu edit2 ye yazdırsın istiyorum ama yazdırmıyo hata nerede acaba ?

edite 3 giriyorum field 3 not found diyo
En son KingStriker tarafından 07 Kas 2006 03:02 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Yangınların İzini Aşklar Siler Sevdiğim...
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
bu gibi durumlarda sql i bir memoya atıp metni okumakta fayda var.
where kısmında hatan var.

Kod: Tümünü seç

where serino='''+edit1.text+'''
şeklinde olması lazım. fazladan ':' koymuşsun.
birde gönderdiğin metinde fazladan bir query1 yazıyor sanırım.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
KingStriker
Üye
Mesajlar: 48
Kayıt: 16 Eki 2006 01:00
Konum: IstanbuL

Mesaj gönderen KingStriker »

Çok sağol arkadaşım :oops:
Şu virgüllerin gizemini bir türlü çözemedim. Diğer hiçbir dilde bu kadar tırnak kompleksim olmamıştı :wink:
Yangınların İzini Aşklar Siler Sevdiğim...
Kullanıcı avatarı
kadirkurtoglu
Üye
Mesajlar: 748
Kayıt: 22 May 2005 01:20
Konum: Uzakta Görünen Tepeden...

Mesaj gönderen kadirkurtoglu »

1-

Kod: Tümünü seç

procedure TParaIade.Button2Click(Sender: TObject); 
begin 
query1.close;
query1.SQL.Clear; 
Query1.SQL.Add('select * from paraver where serino ='''+edit1.Text+ ''''); 
query1.open;
end; 
2-

Kod: Tümünü seç

procedure TParaIade.Button2Click(Sender: TObject); 
begin 
query1.close;
query1.SQL.Clear; 
Query1.SQL.Add('select * from paraver where serino = :serino '); 
Query1.fieldbyname('serino').asString := edit2.Text; 
query1.open;
end; 
olmalıdır.
KingStriker
Üye
Mesajlar: 48
Kayıt: 16 Eki 2006 01:00
Konum: IstanbuL

Mesaj gönderen KingStriker »

ama ben edit1 den aldigim serinoyu nasil :serino degiskenine atayabilecegim ki onu bilmiyorum :S
Yangınların İzini Aşklar Siler Sevdiğim...
Mysterio
Üye
Mesajlar: 44
Kayıt: 18 Eki 2006 01:42

Mesaj gönderen Mysterio »

Şöyle olsa gerek

Query1.SQL.Add('select * from paraver where serino = '+Edit1.text);
Kullanıcı avatarı
kadirkurtoglu
Üye
Mesajlar: 748
Kayıt: 22 May 2005 01:20
Konum: Uzakta Görünen Tepeden...

Mesaj gönderen kadirkurtoglu »

2- numaralı cevabı dikkatli incelersen

Query1.SQL.Add('select * from paraver where serino = :serino ');
eşittirden önceki serino field adıdır. : sonraki ise parametre adıdır.
parametre adını belirterek aşağıda ilgili parametreye değeri edit2 den göndeeiryoruz...
Query1.fieldbyname('serino').asString := edit2.Text;

bu aşamdan yani parametreye değer gönderildikten sonra datasetimizi open yapıyoruz.
KingStriker
Üye
Mesajlar: 48
Kayıt: 16 Eki 2006 01:00
Konum: IstanbuL

Mesaj gönderen KingStriker »

Tamam arkadaşlar buldum doğru yolunu.

Kod: Tümünü seç

query1.SQL.Clear;
query1.SQL.Add('SELECT paadi FROM ParaAlanlar where Pano='+ QuotedStr(dbedit2.Text) );
query1.Active := True;
label7.Caption:= query1.FieldByName('paadi').AsString;
query1.Active := False;
İşte bu kod benim istediğim işleri yapabilmem için yeterliymiş :)

Quotedstr fonksiyonu kilidi çözdü teşekkürler ilgilenen arkadaşların hepsine :wink:
Yangınların İzini Aşklar Siler Sevdiğim...
KingStriker
Üye
Mesajlar: 48
Kayıt: 16 Eki 2006 01:00
Konum: IstanbuL

Mesaj gönderen KingStriker »

kadirkurtoglu yazdı:2- numaralı cevabı dikkatli incelersen

Query1.SQL.Add('select * from paraver where serino = :serino ');
eşittirden önceki serino field adıdır. : sonraki ise parametre adıdır.
parametre adını belirterek aşağıda ilgili parametreye değeri edit2 den göndeeiryoruz...
Query1.fieldbyname('serino').asString := edit2.Text;

bu aşamdan yani parametreye değer gönderildikten sonra datasetimizi open yapıyoruz.
abi işte :serino parametre oluyo onu çözdüm. Ama o parametreye mesela edit1 deki değeri nasıl atayacağım ? çözemediğim nokta orasıydı. parametre bir değişkenin değerini alıp sorguda o değeri arıyor mantıken. Ancak ordaki :serino parametresi değeri nerden alıyor onu çözememiştim. Quotedstr fonksiyonu ile buldum yöntemi bende.
Yangınların İzini Aşklar Siler Sevdiğim...
Kullanıcı avatarı
kadirkurtoglu
Üye
Mesajlar: 748
Kayıt: 22 May 2005 01:20
Konum: Uzakta Görünen Tepeden...

Mesaj gönderen kadirkurtoglu »

Kod: Tümünü seç

query1.SQL.Clear; 
query1.SQL.Add('SELECT paadi FROM ParaAlanlar where Pano='+ QuotedStr(dbedit2.Text) ); 
query1.Active := True; 
label7.Caption:= query1.FieldByName('paadi').AsString; 
query1.Active := False
yukarda yazdığın kod ile ne yapmaya çalıştığını anlamış değilim. ve Yukarıdaki kod saçma sapan bir kod dizisi;

where şartında pano fieldine şart veriyorsun neyi: dbedit2.text i hadi buraya kadar tamam diyelim. label7'ye paadi parametresini aktarıyorsun. burası ne oluyor anlamadım. ortada paadi diye bir parametre yokki. neyse senin kafan fena halde karışmış. kafanı toparla. ne yapmak istediğini tam yaz yardımcı olalım.
KingStriker
Üye
Mesajlar: 48
Kayıt: 16 Eki 2006 01:00
Konum: IstanbuL

Mesaj gönderen KingStriker »

Yukaridaki kod ile dbedit2 nin icindeki degeri sorguya gonderip o sorguya karsilik gelen pano nun sahibi olan serinonun Paadi fieldinden isim getirdim. Ve tam istedigim gibi oldu :wink:
Yangınların İzini Aşklar Siler Sevdiğim...
Cevapla