Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Table Adapteri, Update povezanih tabela

[es] :: .NET :: Table Adapteri, Update povezanih tabela

[ Pregleda: 522 | Odgovora: 1 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Mikelly

Član broj: 16730
Poruke: 265
*.crnagora.net.



Profil

icon Table Adapteri, Update povezanih tabela06.10.2007. u 14:11

Imam jedan tipiziran dataset sa 4 povezane tabele. U konkretnom primjeru koristim dvije tabele (master i slave). Za pristup podacima koristim table adaptere.

Problem se javlja prilikom update-a. Naime, kad update-ujem stare podatke nema problema, ali kad unesem novi zapis u master tabelu i nekolika zapisa u slave tabelu prijavi gresku sql servera.

Ja uradim sledece:
this.kalktableadapter.update(kalkdataset.kalk);
this.datatableadapter.update.(kalkdataset.data);

Prijavljuje kao da ne postoji foreign_key u master tabeli i zato sql server odbija da upise podatke.

Ako dodam novi zapis u master tabelu i odmah odradim update pa tek onda dodajem zapise u slave tabelu nema greske, ali kada prirodno dodajem podatke uvijek prijavljuje ovu gresku.

E sad, da li ja moram prije svakog ubaciavanja slave podataka prvo master podatke upisivati u bazu (ovo mi zvuci bzvz) ili ima neko rjesenje ili ja pravim neki previd...

Pozdrav.
06.10.2007. u 14:11 

bjevta
Bratislav Jevtic
http://www.tojesoft.net/Doc/BratislavJevtic-CV-EN.pdf
Kragujevac

Član broj: 5216
Poruke: 167
*.dynamic.sbb.co.yu.

Sajt: www.tojesoft.net


Profil

icon Re: Table Adapteri, Update povezanih tabela06.10.2007. u 16:40
U slučaju kada treba snimiti više povezanih tabela, predlažem ručno baratanje adapterima. Ako se dobro sećam, redosled insert/update/delete operacija koji je MS predvideo po default-u i nije baš najlogičniji. Cenim da bi najpraktičnije bilo prvo odraditi delete, zatim update, pa na kraju insert.

Operaciju brisanja treba sprovoditi od tabela na dnu hijerarhije (detail u master/detail konceptu), kod update-a treba voditi računa da li je relacija u bazi sa kaskadnim update-om (obično jeste) da se ne bi javio "concurency violence exception" (zaboravih kako se tačno zove), dok je insert najbolje započeti od master tabele.

Dakle, redosled operacija:
1.a delete detail
1.b delete master
2.a update master
2.b update detail
3.a insert master
3.b insert detail
Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it. -Brian Kernighan
06.10.2007. u 16:40 

[es] :: .NET :: Table Adapteri, Update povezanih tabela

[ Pregleda: 522 | Odgovora: 1 ]

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.