• 8 odgovora
  • 4.018 pregleda
Problem sa ključevima i indeksima. VB 2005, .NET, SQL server 2k. 11.12.2007. u 11:33 · pre 229 meseci #1
Prilično bizaran problem: Kad učitam tabelu u DataSet potrebno mi je da dođem do podatka koji je primarni ključ a koji su dodatni indeksi (sa pripadajućim kolonama) kreirani na datoj tabeli na serveru. U DataSetu tih podataka nema, a sve zaobilazne varijante koje mi padaju na pamet su očigledno nezgrapne. Ima li neko iskustva kako pročitati postojeće ključeve i indekse, naravno, iz VB koda?
Potpis
c000 lda #$33
c002 sta $0400
c005 lda #$37
c007 sta $0401
c00a lda #$21
c00c sta $0402
c00f rts

sys 49152
Re: Problem sa ključevima i indeksima. VB 2005, .NET, SQL server 2k. 11.12.2007. u 14:00 · pre 229 meseci #3
He, he, ali taj property je prazan kad izvršiš:
Code:

adapter.fill(dataset, connection)

Moraš da ga napuniš sa columns kolekcijom koja, btw, mora biti unique.
Demantujte me, pliz!
Potpis
c000 lda #$33
c002 sta $0400
c005 lda #$37
c007 sta $0401
c00a lda #$21
c00c sta $0402
c00f rts

sys 49152
Re: Problem sa ključevima i indeksima. VB 2005, .NET, SQL server 2k. 12.12.2007. u 07:40 · pre 229 meseci #4
Pri ucitavanju sheme tabele u untyped dataset ne ucitava se nista sem sheme podataka koji se ucitavaju, znaci nema PK, nema FK, nema constraints, mislim da cak ni default value ne uzima
Jedini nacin da ovo zaobidjes je da koristis typed dataset i da sam generises kljuceve, a ako to nije moguce, onda moras da koristis nezgrapno resenje i da odradis par dodtnih querija da radis table discovery.
Potpis
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić
Re: Problem sa ključevima i indeksima. VB 2005, .NET, SQL server 2k. 12.12.2007. u 11:56 · pre 229 meseci #5
Ovaj diskaveri mi zvuči obećavajuće. Bilo kako bilo, ako provalim imaćete povratnu informaciju. Ne mogu da verujem da negde u kodu moram da imam strukturu koja podražava formaciju indeksa na postojećim tabelama na serveru. To što je PrimaryKey property prazan kad se tabela učita u dataset, je najblaže rečeno, skandal.
Potpis
c000 lda #$33
c002 sta $0400
c005 lda #$37
c007 sta $0401
c00a lda #$21
c00c sta $0402
c00f rts

sys 49152
Re: Problem sa ključevima i indeksima. VB 2005, .NET, SQL server 2k. 12.12.2007. u 13:22 · pre 229 meseci #6
Citat:
DjordjeRd: To što je PrimaryKey property prazan kad se tabela učita u dataset, je najblaže rečeno, skandal.


Nije, jer da bi dobio natrag tu informaciju mora da se izvrsi dodatni upit, sto opterecuje, a 'vecina' taj podatak retko kada koristi pa su 'optimizovali' metodu Fill. Zato imas metodu FillSchema koja ti vraca koliko-toliko mapiranu shemu tabele, koju pozoves pre Fill metode.
Potpis
America national sport is called baseballs. It very similar to our sport, shurik, where we take dogs, shoot them in a field and then have a party.
Re: Problem sa ključevima i indeksima. VB 2005, .NET, SQL server 2k. 12.12.2007. u 18:45 · pre 229 meseci #7
Pored FillSchema koju ti je dusty dao, imas i flag na adapteru koji ce ti sam to odraditi:

Code:

adapter.MissingSchemaAction = MissingSchemaAction.AddWithKey;
adapter.Fill(...);


sto se u principu svodi na to da Fill pozove FillSchema ako shema nedostaje ;). Medjutim oba ova resenja se svode na minimalno dodavanja Primary kljuca, ostale single i multicolumn unique constraints se ne dodaju aftamacki. Tako da ako ces na ucitanoj tabeli dodavati nove redove moras da obratis paznju na te unique constraints.
Potpis
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić
Re: Problem sa ključevima i indeksima. VB 2005, .NET, SQL server 2k. 13.12.2007. u 16:32 · pre 229 meseci #8
Ako treba da se čita meta-data (tabele, kolone, indeksi, itd), mora se koristit SMO. Međutim, SMO je namenjen samo za ove stvari (baratanje samom bazom, ne i podacima), a to spada u sasvim drugi tip aplikacije.
Potpis
Acta, non verba!
Re: Problem sa ključevima i indeksima. VB 2005, .NET, SQL server 2k. 14.12.2007. u 08:55 · pre 229 meseci #9
SMO je malo overkill za to, a i radi samo na SQL2005, mada slican posao na SQL2000 obavlja SQLDMO. Malo ljudi i zna da radi sa ovim objektima a i nema previse potrebe za time kad se sve to moze resiti sa par (ne)dokumentovanih skripti ;)

ado.net 2 data provajderi imaju opciju za utvrdjivanje sheme baze, preko GetSchema metoda na Connection objektu. medjutim problem je sto nista od toga nije automatizovano i moras da imas kod koji ce da analizira i kreira repliku sheme u dataset-u sto se slabo isplati.
Potpis
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme