DBEdit iel ilgili bir soru!!

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

DBEdit iel ilgili bir soru!!

Mesaj gönderen ozcank »

Arkadaşlar;
ben bir form oluşturuyorum ve bu forma DBEdit1 , DBEdit2 , DBedit3 yerleştiriyorum ve table1 ve DataSource1 var.
bağlantıları yapıyorum ve DBEdit1 e Firma kodu '1' yazdığım zaman DBEdit2 ve DBEdit3 e '1' ile ilgili kayıt '2' ise iki ile kayıt gelmiyor nasıl bir kod yazmalıyım?
Kullanıcı avatarı
y.kulac
Üye
Mesajlar: 276
Kayıt: 08 Kas 2003 12:03
Konum: serdivan/sakarya

Mesaj gönderen y.kulac »

merhaba.
arkadaşım ben sorunu 3 defa okudum ama ne gibi bir işlem yapmak istediğini anlayamadım. :oops:
sanırım sorgu yapmak istiyorsun. bunun için query kullanmanı tavsiye ederim. yada daha açıklayıcı bilgi yazabilirsen yardımcı olmaya çalışırız.
kolay gelsin.
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Mesaj gönderen ozcank »

DBEdit1 ' e Firma kodu '1' yazdığım zaman DBEdit2 ve DBEdit3 de 1 nolu koda ait bilgilerin gelmesini istiyorum.Kodu '2' yazarsam iki nolu koda at bilgiler gelmesini istiyorum.
assoft

Mesaj gönderen assoft »

Anladığım kadarı ile sen arama yaptırmak istiyorsun o zaman

Kod: Tümünü seç

Forma 1 Query, Datasource, Edit ve 2 adet dbedit koy firma kodunu dbeditlere atama diğerlerini ata
Tabiki yazdığım kodlar SQL üzerine olacak sen Table kullanmış olabilirsin

Kod: Tümünü seç

Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('SELECT * FROM FIRMA WHERE FIRMA_KODU='''+Edit1.Text+'''');
Query1.Open;
Kullanıcı avatarı
y.kulac
Üye
Mesajlar: 276
Kayıt: 08 Kas 2003 12:03
Konum: serdivan/sakarya

Mesaj gönderen y.kulac »

:lol: assoft arkadaşımız gerekli cevabı vermiş.
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Mesaj gönderen ozcank »

Arkadaşım peki o zaman şunu yapabilrmiyim;
benim iki tane Db var ve bu Db 'lerde FIRMAKODU ile FIRKODU nu ilişkilendirmek istiyorum bunu nasıl yapabilirim?
Edit1 e firma Kodu '1' yazdığım zaman DBGrid1 'e '1' ile ilgili kayıtlar gelecek.Firma Kodu '2' ise 2 ile ilgili kayıtlar gelecek. SQL de yapmak istiyordum ama yapamadım.
Arkadaşım bu arada çok tşk. ediyorum.
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

merhaba,

assoft ustam sana gerekli sql kodu vermiş yapacağın sadece bu query e bağlı datasource yi dbgridin datasourcesine bağlamak. editlerde göstermek istiyorsan da

edit1.text:=ibquery.fieldbyname('FALANFILAN').asstring;
...................

şeklinde dönen değerleri editlere aktaracaksın.

bu kodu firma no girdiğin editin onchange sine, onkeypress ine veya yanına koyacağın button a yazabilirsin

kolay gelsin
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

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

Mesaj gönderen ozcank »

Sorgulama tamam fakat ikinci DB deki kayıtları ilişklendiremedim?
bunu nasıl yapabilirim FIRKODU=FIRKOD olmalı bunu nasıl yapabilirim?
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Mesaj gönderen ozcank »

2 tane SQL ekledim ama Tablede ki gibi MasterSource yok ilişkilendirmek için.1 tane SQL birtane Table Ekliyorum bu sefer SQL i tanımıyor.
Kullanıcı avatarı
mucar
Kıdemli Üye
Mesajlar: 247
Kayıt: 17 May 2005 01:14

Mesaj gönderen mucar »

Kod: Tümünü seç

select tablo1.*,tablo2.*
from tablo1
left join tablo2 on tablo1.FIRKODU=tablo2.FIRKOD
where //buraya da şartınızı yazın
Join komutu ile istediğiniz tabloları istediğiniz şartlara göre birleştirebilirsiniz. 2 tane query ye gerek yok. kolay gelsin
"Evine bakmaktan aciz olan; ilerici, üç kıtaya hükmeden ecdadın mı gerici?"
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Mesaj gönderen ozcank »

Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('SELECT * FROM ISILTAKIPFOR1 WHERE FIRKODU='''+Edit1.Text+'''');
Query1.Open;

Bu sorguya nasıl ekleyebilirim yardım edermisiniz?
assoft

Mesaj gönderen assoft »

Bak "ozcank" kardeşim şimdi sen tam olarak ne yapmak istediğini belirtmiyorsun o yüzden arkadaşlarımda yardımcı olmakta zorlanıyorlar bir konun sapmamasına dikkat edelim.
Yani sen tam olarak ne yapmak istediğini söyle arkadaşlarımda cevap veririler inş.
Biraz konuyu açarsan iyi olur.
Kullanıcı avatarı
mucar
Kıdemli Üye
Mesajlar: 247
Kayıt: 17 May 2005 01:14

Mesaj gönderen mucar »

Kod: Tümünü seç

with query1 do
begin
Close;
SQL.Clear; 
SQL.Add('select ISILTAKIPFOR1.*,DIGERTABLONUNADI.* from ISILTAKIPFOR1');
SQL.Add('left join DIGERTABLONUNADI on ISILTAKIPFOR1.FIRKODU=DIGERTABLONUNADI=FIRKOD');
SQL.Add('where FIRKODU=:x');
parameters.parambyname('x').value:=edit1.text;
Open; 
end;
burada diğer ilişkilendirmek istediğiniz tablo ismini DIGERTABLONUNADI yazan yerlere yazın.
"Evine bakmaktan aciz olan; ilerici, üç kıtaya hükmeden ecdadın mı gerici?"
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Mesaj gönderen ozcank »

Ben şunu yapmak istiyorum;
Edit1 // Firma Kodu
DBEdit1 // Firma Adı
DBEdit2 // Adres
DBGrid1 // Raporlama

ve benim kayıt işlemi yaparken kullandığım 2 tane DB var bunlar ;
ISILTAKIPFOR1,ISILTAKIPFOR2
ISILTAKIPFOR1 de Müşteri kayıtlarını tutyorum
ISILTAKIPFOR2 de de Hareketleri tutuyorum

Şimdi ben Edit1 e Kod yazdığım zaman ISILTAKIPFOR1 de FIRKODU ISILTAKIPFOR2 deki FIRMAKOD ile ilişiklenip DBGrid1 e rapor alacak yapmak istediğim bu ama bunu SQL de yapmak istedim beceremedim.



Bu işlemle sadece Edit1 e yazdığım zaman DBEdit1 ve DBEdit2 yede bilgiler geliyor birde DBGrid1 e ISILTAKIPFOR2 deki hareketleri nasıl bir kod yazarak listeleyebilirim.

FIRKODU=FIRMAKOD

procedure TForm6.Edit1Exit(Sender: TObject);
begin
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('SELECT * FROM ISILTAKIPFOR1 WHERE FIRKODU='''+Edit1.Text+'''');
Query1.Open;
end;
assoft

Mesaj gönderen assoft »

Bileşenler:
==============
Query1 = ISILTAKIPFOR1 =<DataSource> QUERY1_DS
Query2 = ISILTAKIPFOR2 = <DataSource> QUERY2_DS

QUERY1'in Onstatechange Olyayına

Kod: Tümünü seç

Query2.Close;
Query2.SQL.Clear;
Query2.SQL.Add(SELECT * FROM ISILTAKIPFOR2 WHERE FIRMAKOD='''+IntToStr(QUERY1.FieldByName('FIRKOD').AsInteger)+'''');
Query2.Open;
Cevapla