Merhaba arkadaşlar.
Bir sorum olacaktı sizlere. 2 database var.
birincisi *.mdb, diğeri ise Sql ile başka bir database e bağlandım.
bu iki database i 2 ad. dbgridde ayrı ayrı görebiliyorum. istedigim sorguları yapıyorum. Fakat burdaki amacım bu 2 database i tek bir dbgridde toplamak. Toplamakdaki kastım birleştirmek. yani
ör// elma ile ilgili bilgileri *.mdb den elmanıın fiatları ile ilgili bilgileri sql üzerinden tek bir dbgridde birleştirmek.
Bunun için biraz araştırdım mem data ile databaseleri burda toplayarak istedigim dataları dbgridde çağırarak olabiliyormuş .Bunu başarabilecegimi sanmıyorum..
Farklı bir yolu varmı. Var ise detaylı yazarsanız sevinirim.
Teşekkürler
2 farlklı database tekbir dbgridde toplamak
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Selamlar,
Bir tarafın Query'sini çekersiniz ve diğer kanattan çekeceğiniz bilgileri Calculated Field tanımlayarak yaparsınız ama açıkçası işinize pek yaramaz.
Eğer veri girişinden filan bahsediyorsanız sizi bayaa üzer bu olay !...
Bence en mantıklısını yapıp bu iki ayrı Database'i bir araya getirin.
Zira her bir database için farklı connection'lar kurmak zorunda kalacaksınız ve Data bütünşüğünüzü de ister istemez yitireceksiniz. Sizi çok ama çok sıkıntıya sokar.
Kolay Gelsin.
Bir tarafın Query'sini çekersiniz ve diğer kanattan çekeceğiniz bilgileri Calculated Field tanımlayarak yaparsınız ama açıkçası işinize pek yaramaz.
Eğer veri girişinden filan bahsediyorsanız sizi bayaa üzer bu olay !...
Bence en mantıklısını yapıp bu iki ayrı Database'i bir araya getirin.
Zira her bir database için farklı connection'lar kurmak zorunda kalacaksınız ve Data bütünşüğünüzü de ister istemez yitireceksiniz. Sizi çok ama çok sıkıntıya sokar.
Kolay Gelsin.
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Evet bu mumkun.... 2 adet TDatabase nesnesi kullanmanız gerekiyor tabi...
ilgili kodu asagidaki mesajda bulabilirsiniz....
viewtopic.php?t=1539
ilgili kodu asagidaki mesajda bulabilirsiniz....
viewtopic.php?t=1539
* http://www.fahrettin.org Manzara Fotoğraflarım... 
* http://delphiturkiye.gunduz.info Seminerler...
* http://www.hakmar.com.tr Kalite bir haktır...

* http://delphiturkiye.gunduz.info Seminerler...

* http://www.hakmar.com.tr Kalite bir haktır...

teşekkürler fahrettin abi,kuri bey. Acemi oldugum için sizin önerilerinizi beceremedim. fakat ben çözüm yolunu şu şekilde bulmaya çalıştım. Ama kodlarım berbat oldugu için tam olarak gerçekleştiremedim
Amacım: Adoquery2 de Product_ID kolonunda girdigim(new veya chance recort) bir ID numarasını Adoquery1 de sorgulayıp o Id ye ait diger bilgileri ado2 ye taşımak.
Bununla ilgili demelerimde şu kodları yazdım
Bu kod hakkında yanlışlarımı gösterebilirseniz sevinirim.
Amacım: Adoquery2 de Product_ID kolonunda girdigim(new veya chance recort) bir ID numarasını Adoquery1 de sorgulayıp o Id ye ait diger bilgileri ado2 ye taşımak.
Bununla ilgili demelerimde şu kodları yazdım
Kod: Tümünü seç
procedure TForm1.DBGrid2DrawColumnCell......
var
Gms : String;
begin
gms := adoquery2.FieldByName('Product_ID').Asstring;
ADOQuery1.sql.Clear;
ADOQuery1.SQL.add('select * from ARTICLE');
ADOQuery1.sql.add('where P_ART_NO =''' + gms+'''');
ADOQuery1.open;
end;
ADOQuery2Manufacturer.Value := ADOQuery1SRA_SUPPL_NO.asstring;
ADOQuery2Name.Value := ADOQuery1ART_DESCR.AsString;
ADOQuery2Category.Value := ADOQuery1AGB_ART_GRP_NO.asstring;
end;
end;
Amacın sadece bir taraftan bilgileri alıp diğer tarafta göstermek ise,Armani yazdı:Kod: Tümünü seç
procedure TForm1.DBGrid2DrawColumnCell...... var Gms : String; begin gms := adoquery2.FieldByName('Product_ID').Asstring; ADOQuery1.sql.Clear; ADOQuery1.SQL.add('select * from ARTICLE'); ADOQuery1.sql.add('where P_ART_NO =''' + gms+''''); ADOQuery1.open; end; ADOQuery2Manufacturer.Value := ADOQuery1SRA_SUPPL_NO.asstring; ADOQuery2Name.Value := ADOQuery1ART_DESCR.AsString; ADOQuery2Category.Value := ADOQuery1AGB_ART_GRP_NO.asstring; end; end;
Table'ın veya Query'nin üzerinde double click yapıp Field'larını getir,
daha sonra field list üzerinde sağ click ile new Field'ı seç,
isim, tip ve field boyutu bilgilerini gir ve sonra FieldKind'ını belirt (Calculated).
Böylelikle yeni bir fieldı ilgili query'e eklemiş olursun. Fakat bu eklemiş olduğun yeni field sadece client makinada göstermelik olarak yer alacak bir bilgidir, fakat buraya bilgi nereden gelecek diye sorduğunda da,
table'ın Eventlerinden OnCalculatedField eventine, oraya gelecek bilgiyi koyabilirsin.
Örneğin. bizim calculated field'ımızın adı Table1CALCFIELD olsun
Kod: Tümünü seç
if Table1CINSIYET.AsInteger = 1 then
begin
Table1CALCFIELD.AsString := 'ERKEK' ;
end
else
begin
Table1CALCFIELD.AsString := 'DİŞİ' ;
end ;
Gibi gibi ....
Kolay Gelsin.
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
teşekkürler kuri.
ben bu problemi daha farklı bir yöntemle çözdüm
ben bu problemi daha farklı bir yöntemle çözdüm
Kod: Tümünü seç
procedure TForm1.DBGrid2KeyPress(Sender: TObject; var Key: Char);
var
gms : String;
begin
gms := Adoquery2.fieldbyname('Product_ID').AsString;
begin
ADOQuery2.Edit;
ADOQuery1.sql.Clear;
ADOQuery1.SQL.add('select * from ARTICLE');
ADOQuery1.sql.add('where P_ART_NO =''' +gms+'''');
ADOQuery1.open;
end;
begin
if ADOQuery1.RecordCount = 0 then
ShowMessage(Gms + ' Nolu Artikel Bulunamadı!');
end;
ADOQuery2Manufacturer.Value := ADOQuery1SRA_SUPPL_NO.asstring;
ADOQuery2Name.Value := ADOQuery1ART_DESCR.AsString;
ADOQuery2Category.Value := ADOQuery1AGB_ART_GRP_NO.asstring;
Adoquery1.Close;