sql ile iki tabloyu bağlama
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
sql ile iki tabloyu bağlama
merhaba arkadaşlar.
ihale diye master tablom var. bir de malzeme diye detail tablom var. bunları sql ile nasıl bağlayabirim. çok teşekür ederim kolay gelsin
ihale diye master tablom var. bir de malzeme diye detail tablom var. bunları sql ile nasıl bağlayabirim. çok teşekür ederim kolay gelsin
Büyük bir ihtimalle gönderdiğin parametrede değer uyuşmazlığı olabilir.
Sql cümleciğinin geçtiği kodu tam olarak yazarsan iyi olur( Query ).
Kolay Gelsin.
Sql cümleciğinin geçtiği kodu tam olarak yazarsan iyi olur( Query ).
Kolay Gelsin.
Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
aslında bir makale halinde ilerde ipucu bolumune eklemek lazım ama ben kısaca nasıl yapıldıgını izah edeyim
ornegin
select * from detail where master_detail_id=:id
buradaki : isareti sql icinde parametre belirtmek icin kullanılır...
master ise
select * from master
olsun.
2 tane datasource alıp sorgulara baglşarız dsDetail ve dsMaster
detail querysinn DataSource diye bir ozelligi vardır buraya masterin datasource unu bagladıkmı iki sorguyu acınca master-detail baglkantısı hazır demektir.
kolay gelsin
- detail ve master isimli iki adet sorgunuz olsun
ornegin
select * from detail where master_detail_id=:id
buradaki : isareti sql icinde parametre belirtmek icin kullanılır...
master ise
select * from master
olsun.
2 tane datasource alıp sorgulara baglşarız dsDetail ve dsMaster
detail querysinn DataSource diye bir ozelligi vardır buraya masterin datasource unu bagladıkmı iki sorguyu acınca master-detail baglkantısı hazır demektir.
kolay gelsin
ÜŞENME,ERTELEME,VAZGEÇME
hata veriyor
---------------------------
Debugger Exception Notification
---------------------------
Project Project1.exe raised exception class EDatabaseError with message 'Field 'id' cannot be modified'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------
gkimirdi abinin yazdığı şeylerin aynısını kullanıyorum ama yukarıdaki hatayı veriyor. vallahi ben bu iki tabloyu sql ile bağlayamazsam programcılığı bırakacam bu nasıl bir iştir elimi attığım yer çürüyor.bu iki tabloyu sql ile bağlama işlemini binlerce yapan bir arkadaşımla yaptık oda bana gösterirken çalıştıramamıştı.
master ve detail diye iki tablo oluşturdum.master e id,adisoyadı,nasilsin diye alanlar oluşturdum.
detailde id,master_detail_id,merhaba diye alan oluşturdum.
sonra 1 adoconnection, 2 adoquery,2 datasource koydum.ikide dbgrid.
adoconnection ile bağlantıyı yaptım.
master_adquery stringine select * from master yazdım.
detail_adoquery stringine select * from detail where master_detail_id=:id yazdım.
detail_adoquery datasourcesini master_datasource eşitledim.
ve en yukarıda yazmış olduğum hata çıktı.
iki tabolunun id lerini otomatik artmasını sağladım. niye çalışmaz.
kafayı yiyecem.
ayrıca bana zaman ayıran herkese teşekür ederim.
kolay gelsin
Debugger Exception Notification
---------------------------
Project Project1.exe raised exception class EDatabaseError with message 'Field 'id' cannot be modified'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------
gkimirdi abinin yazdığı şeylerin aynısını kullanıyorum ama yukarıdaki hatayı veriyor. vallahi ben bu iki tabloyu sql ile bağlayamazsam programcılığı bırakacam bu nasıl bir iştir elimi attığım yer çürüyor.bu iki tabloyu sql ile bağlama işlemini binlerce yapan bir arkadaşımla yaptık oda bana gösterirken çalıştıramamıştı.
master ve detail diye iki tablo oluşturdum.master e id,adisoyadı,nasilsin diye alanlar oluşturdum.
detailde id,master_detail_id,merhaba diye alan oluşturdum.
sonra 1 adoconnection, 2 adoquery,2 datasource koydum.ikide dbgrid.
adoconnection ile bağlantıyı yaptım.
master_adquery stringine select * from master yazdım.
detail_adoquery stringine select * from detail where master_detail_id=:id yazdım.
detail_adoquery datasourcesini master_datasource eşitledim.
ve en yukarıda yazmış olduğum hata çıktı.
iki tabolunun id lerini otomatik artmasını sağladım. niye çalışmaz.
kafayı yiyecem.
ayrıca bana zaman ayıran herkese teşekür ederim.
kolay gelsin
bu hatayı ne yaparken veriyor
yeni bir kayıt mı ekliyorsun yoksa programı baslatıp tabloları acarken mi veriyor.
eger kayıt girisi yada duzenleme gibi bir islem yaptıracaksan farklı bir yol dene bence
ikincisi master_detail_id unique falan olmayacak primarykey falan olamayacak
ama benim ornegimde master tablonun id si primary key ve bir artan sayıya sahip
ayrıca detail tablomda da detail_id var ve primary key aratn sayı
yeni bir kayıt mı ekliyorsun yoksa programı baslatıp tabloları acarken mi veriyor.
eger kayıt girisi yada duzenleme gibi bir islem yaptıracaksan farklı bir yol dene bence
ikincisi master_detail_id unique falan olmayacak primarykey falan olamayacak
ama benim ornegimde master tablonun id si primary key ve bir artan sayıya sahip
ayrıca detail tablomda da detail_id var ve primary key aratn sayı
ÜŞENME,ERTELEME,VAZGEÇME
Re: hata veriyor
Oncelikle programciligi birakmayai hic dusunmeyin evel Allah bu sorunu hallederiz. Gerekirse kodu komple gonderirsin halleder geri gonderir yine sorunu cozeriz. Ama buna gerek yok bence cunku anlatiminiz bu ise yeni baslayanlara makale olacak sekilde sorunsuz yapilmis gibi duruyor.
Benim gozume carpan su tablo yapilaraina bakinca iki tablo arasindaki iliski id alani uzerinden gibi gorunuyor. Yani master tabloda id=1 ise detayda da id=1 olan ama master_detail_id alani farkli kayitlar olmali diye dusunuyorum ama detayin sql kodu bu mantıga uygun degil.
[quote="ademcicek
detail_adoquery stringine select * from detail where master_detail_id=:id [/quote]seklinde yazmissiniz. seklinde olmali.
tabi iki tablo arasindaki iliski detay tarafta id alani uzerinden olacaksa eger....
Bir de butun bunlarin disinda id ismi reserved word olabilir mi diye dusunuyorum. Bu alan adini her iki tabloda da degistirerek bir deneyin derim mesela MASTER_ID gibi..... ya da bu da sakat bir alan adi olabilir
MERHABA_ID yapin mesela
Kolay gelsin.....
Benim gozume carpan su tablo yapilaraina bakinca iki tablo arasindaki iliski id alani uzerinden gibi gorunuyor. Yani master tabloda id=1 ise detayda da id=1 olan ama master_detail_id alani farkli kayitlar olmali diye dusunuyorum ama detayin sql kodu bu mantıga uygun degil.
[quote="ademcicek
detail_adoquery stringine select * from detail where master_detail_id=:id [/quote]seklinde yazmissiniz.
Kod: Tümünü seç
select * from detail where id=:id
tabi iki tablo arasindaki iliski detay tarafta id alani uzerinden olacaksa eger....
Bir de butun bunlarin disinda id ismi reserved word olabilir mi diye dusunuyorum. Bu alan adini her iki tabloda da degistirerek bir deneyin derim mesela MASTER_ID gibi..... ya da bu da sakat bir alan adi olabilir


Kolay gelsin.....
herkese teşekür ederim
sevgili fahrettin ve g kimirdi yardımlarınız için çok teşekür ederim. sonuda sorunu fahrettin abinin dediği şekilde hallettim.
önceki yaptıklarımda olmamasının nedeni master_detail_id=:id oluyormuş.
detail de yapmış olduğum id ve master_detail_id nin yerini değiştirmdim.
fahrettin abinin dediği gibi yaptım.
select * from detail where id=:id yaptım ve çalıştı.
hepinizden allah razı olsun.
kolay gelsin
önceki yaptıklarımda olmamasının nedeni master_detail_id=:id oluyormuş.
detail de yapmış olduğum id ve master_detail_id nin yerini değiştirmdim.
fahrettin abinin dediği gibi yaptım.
select * from detail where id=:id yaptım ve çalıştı.
hepinizden allah razı olsun.
kolay gelsin