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

Kopiranje podataka iz jedne tabele u drugu sa AutoNumber kolonom

[es] :: Access :: Kopiranje podataka iz jedne tabele u drugu sa AutoNumber kolonom

[ Pregleda: 1015 | Odgovora: 17 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Shadowed
.NET developer

SuperModerator
Član broj: 649
Poruke: 8669
*.static.sbb.rs.

Sajt: www.diskusije.net


Profil

icon Kopiranje podataka iz jedne tabele u drugu sa AutoNumber kolonom10.04.2008. u 16:25

Ovako, jedno resenje imam, tako da nije neka frka, ali me interesuje kako bi drugi uradili. Postovacu posle kako sam smislio.
Elem, o cemu se radi. Trebam da kpiram podatke iz jedne tabele u drugu (ne mogu da kopiram celu tabelu, ne pitajte zasto ). Obe imaju istu strukturu i prim. key je AutoNumber.
U izvornoj tabeli je bilo mnogo dodavanja i brisanja redova tako da em ne krece od 1 em ima "rupa".
Ako kopiram direktno sa copy/paste, autonumber ce generisati nove brojeve koji se nece poklapati.
Kako napraviti identicnu kopiju?
10.04.2008. u 16:25 

Kiro
Akir Žalić
BiH

Član broj: 19085
Poruke: 97
*.PPPoE-113.sa.bih.net.ba.

Sajt: www.icentar.com


Profil

icon Re: Kopiranje podataka iz jedne tabele u drugu sa AutoNumber kolonom10.04.2008. u 18:41
Čini mi se da Append Query to može napraviti. Ali nisam siguran pokušaj!
Kiro
10.04.2008. u 18:41 

goranvuc
Goran Vucicevic
Novi Sad

Član broj: 4934
Poruke: 1594
77.46.226.*

Sajt: www.clickersoftware.com


Profil

icon Re: Kopiranje podataka iz jedne tabele u drugu sa AutoNumber kolonom10.04.2008. u 18:50
Ako primarni kljuc, tj. taj tvoj autonumber nije u relaciji sa poljima u drugim tabelama, onda ces to lako srediti tako sto ukines da je autonumber i stavis da je long integer -> obavis append - > vratis da je autonumber.

Ako su postavljene relacije, jedino sto mi pada na pamet je da ubacis kao prvi korak skidanje svih relacija za to polje - > procedura koju sam gore naveo - > vracanje svih relacija.

P.S.

Sta se ti to petljas sa Access-om u zadnje vreme? (odgovor primam i na PP)
vidi GoranVucicevic #28045

www.clickersoftware.com
10.04.2008. u 18:50 

Getsbi
Miroljub Zahorjanski
Vršac

Moderator
Član broj: 124608
Poruke: 1153
79.101.186.*



Profil

icon Re: Kopiranje podataka iz jedne tabele u drugu sa AutoNumber kolonom10.04.2008. u 18:59
Posle ukidanja Autonumber i postavljanja Number, Long Integer teško da će vratiti ponovo na AutoNuber. Mislim da je Kiro u pravu i da može sa Append Query da se doda u novu tabelu koja je ista po strukturi i to tako da se u redu Criteria nad poljem Autnumber napiše uslov od kojeg do kojeg zapisa se appenduje. Na taj način će se korektno preneti samo oni zapisi koji su naređeni uslovom i vrednosti u AutoNumer polju će im se podudarati.
I'll know what I want, when I see it.
Prikačeni fajlovi
10.04.2008. u 18:59 

goranvuc
Goran Vucicevic
Novi Sad

Član broj: 4934
Poruke: 1594
77.46.226.*

Sajt: www.clickersoftware.com


Profil

icon Re: Kopiranje podataka iz jedne tabele u drugu sa AutoNumber kolonom10.04.2008. u 19:03
Citat:
Getsbi: Posle ukidanja Autonumber i postavljanja Number, Long Integer teško da će vratiti ponovo na AutoNuber.


Moze ako je prazna tabela, ako ima podataka onda ne moze.


@Getsbi, sad sam video da si i sliku stavio - ako je zbog mene nisi morao
vidi GoranVucicevic #28045

www.clickersoftware.com
10.04.2008. u 19:03 

Getsbi
Miroljub Zahorjanski
Vršac

Moderator
Član broj: 124608
Poruke: 1153
79.101.186.*



Profil

icon Re: Kopiranje podataka iz jedne tabele u drugu sa AutoNumber kolonom10.04.2008. u 19:09
Štos i jeste da je prva već popunjena, a da drugoj treba da se dodaju samo neki zapisi iz prve i da im je struktura potpuno ista. Bar sam ja tako razumeo.
I'll know what I want, when I see it.
10.04.2008. u 19:09 

Catch 22
Vladimir Ćurčić
Terra Incognita

Član broj: 148083
Poruke: 2603
*.SMIN.panline.net.

Jabber: catch22@elitesecurity.org
ICQ: 16379907


Profil

icon Re: Kopiranje podataka iz jedne tabele u drugu sa AutoNumber kolonom10.04.2008. u 20:16
Postupak za čišćenje rupa u autonumber polju:
Prvo iskopiraj tu prvu tabelu i to samo strukturu (bez podataka) čime ćeš dobiti praznu novu.
Napravi append query (append-uješ prvu staru u praznu novu) u kom je postavljen sorting ascend po autonumber polju, a za append su selektovana sva polja osim autonumber, apenduj onda prvu tabelu u praznu novu.
Ovim ćeš dobiti u kopiji sve podatke iz stare ali sa urednim automatski generisanim autonumber, koji počinje od 1 i ide kontinuelno bez "rupa"... sada staru prvu tabelu možeš i da obrišeš, a njenu kopiju preimenuješ tako da je zameni u strukuturi baze (proveri potom sve relacije i popravi ih ako treba)...
(Napomena: Ako postoji opasnost od remećenja relacija onda se to rešava uvođenjem temp numeric polja u koji se iskopiraju stari autonumber podaci)

E sad dalje možeš i sam...
10.04.2008. u 20:16 

Shadowed
.NET developer

SuperModerator
Član broj: 649
Poruke: 8669
*.dynamic.sbb.rs.

Sajt: www.diskusije.net


Profil

icon Re: Kopiranje podataka iz jedne tabele u drugu sa AutoNumber kolonom10.04.2008. u 21:00
Prvo hvala na odgovorima.
Kiro, append ne pomaze. Stvar je u tome da kada se insert-uju podaci iz jedne tabele u drugu, kolona koja je autonumber se ne moze setovati, uvek se sama generise.
Catch 22, nije mi potrebno da pocistim rupe. Naprotiv, potrebno mi je da imam podatke u drugoj tabeli (tj. ta druga tebela je u drugoj bazi) tacno kao sto su u prvoj, znaci sa istim autoid (to je ime kolone koja je autonmber) i sa istim rupama (ima oko 9500 redova i autoid je negde 25000-35000).
Getsbi, ne, jedna je skroz prazna, treba prebaciti sve podatke.

Citat:
goranvuc: Ako primarni kljuc, tj. taj tvoj autonumber nije u relaciji sa poljima u drugim tabelama, onda ces to lako srediti tako sto ukines da je autonumber i stavis da je long integer -> obavis append - > vratis da je autonumber.

Kad obavis append, onda vec ima podatke, a onda vise ne mogu vratiti na autonumber. To sam prvo probao

Citat:
goranvuc: Sta se ti to petljas sa Access-om u zadnje vreme? (odgovor primam i na PP)

Ne bi mi verovao
Za sad cu pomenuti da je neko (izmedju ostalog) setovao gomilu null-ova u kolone koje su required (cak jedan red ima i u primary key). Kopiracu ti na PP sto sam objasnjavao vec nekom, jer me mrzi sve ponovo pisati. Mada, nisam siguran ni da li je taj kome sam objasnjavao shvatio, tj. da l' sam dobro objasnio


Elem, kako cu resiti:
Napravicu program (mogu i u samom access-u, ali .net vise volEm). Ako su u punoj tabeli AutoID od X do Y, program ce napraviti Y redova sa nekim bez veze podacima, zatim ce ucitati podatke iz pune tabele i update-ovati one redove ciji ID postoji i u tabeli sa podacima a ostale obrisati.
10.04.2008. u 21:00 

lukeguy
Novi Sad

Član broj: 46545
Poruke: 324
*.com
Via: [es] mailing liste



Profil

icon Re: Kopiranje podataka iz jedne tabele u drugu sa AutoNumber kolonom10.04.2008. u 21:45
izvini, ali kako ne možeš da appenduješ autonumber polje? evo sad sam
probao i sa insert select i insert values i radi oba. jedino ne sme da
se naruši jedinstvenost ako je polje PK.
10.04.2008. u 21:45 

Getsbi
Miroljub Zahorjanski
Vršac

Moderator
Član broj: 124608
Poruke: 1153
79.101.245.*



Profil

icon Re: Kopiranje podataka iz jedne tabele u drugu sa AutoNumber kolonom10.04.2008. u 21:50
@ Shadowed
Šta znači u kontekstu tvog problema?: "...kolona koja je autonumber ne može se setovati, uvek se sama generise.." To je tačno kad radiš Copy/Paste. Pokušaj da appenduješ u praznu sa istom strukturom.
Probao sam Append Query i radi korektno. Sve slogove iz Table1, koja ima ključ Autonumber, koja je napunjena i koja ima rupe u autonumerisanju usled obrisanih slogova, apenduje u Table2 sa identičnom strukturom i takođe postavljenim ključem na Autonumber. Appendovani slogovi imaju ista autonumerisanja kao i u izvornoj tabeli. Rupe su tamo gde treba. Ako ne treba sve slogove appendovati onda postaviš uslov koje slogove treba. To što nisu iz iste baze takođe nije problem. Postoji Importovanje tabela. Importuješ u jednom smeru, a potom u drugom. Ako baš voliš da programiraš, a ti programiraj.

Ne treba uopšte da skidaš tip podatka Autonumber. Samo isprobaj.

[Ovu poruku je menjao Getsbi dana 10.04.2008. u 23:03 GMT+1]
I'll know what I want, when I see it.
10.04.2008. u 21:50 

Catch 22
Vladimir Ćurčić
Terra Incognita

Član broj: 148083
Poruke: 2603
*.SMIN.panline.net.

Jabber: catch22@elitesecurity.org
ICQ: 16379907


Profil

icon Re: Kopiranje podataka iz jedne tabele u drugu sa AutoNumber kolonom10.04.2008. u 23:44
Citat:
Getsbi: ...apenduje u Table2 sa identičnom strukturom i takođe postavljenim ključem na Autonumber. Appendovani slogovi imaju ista autonumerisanja kao i u izvornoj tabeli. Rupe su tamo gde treba.

Takva tabela u kojoj "PK autonumber rupe" nisu nastale brisanjem slogova će vremenom (relativno brzo) da se "zakuca" i neće dozvoljavati nove unose!
10.04.2008. u 23:44 

Shadowed
.NET developer

SuperModerator
Član broj: 649
Poruke: 8669
*.dynamic.sbb.rs.

Sajt: www.diskusije.net


Profil

icon Re: Kopiranje podataka iz jedne tabele u drugu sa AutoNumber kolonom10.04.2008. u 23:50
Getsbi, ok, nisam znao da ce to raditi a pretpostavio sam da nece jer ni jedan drugi nacin manuelnog setovanja AutoNumber kolone nije bilo prihvaceno.
Catch 22, zbog cega bi zakucala?

Mislim da cu ipak napraviti ovo... :)
10.04.2008. u 23:50 

izonic
ishab zonic
Tuzla

Član broj: 38128
Poruke: 378
*.PPPoE-3668.sa.bih.net.ba.

Sajt: www.icentar.com


Profil

icon Re: Kopiranje podataka iz jedne tabele u drugu sa AutoNumber kolonom11.04.2008. u 00:33
Prenos autonumber polja u drugu tabelu a da ostane autonumber je veoma mukotrpno ali itzvodivo a kodom.
Podigne se prva tabela koja je puna u recordsete te druga tabela koju zelimo puniti u recordset.
Znaci imamo rs1 i rs2.

rs1 jedan stavimo u doo petlju a rs2 idemo sa opciom add.new pa update.
Nakon toga idemo rs2.mowelast na zadnji te ucitamo polje autonumber i uporedimo ga sa poljem autonumber rs1 ako nije isto onda brisemo red rs2.delete i update.


zxz
11.04.2008. u 00:33 

lukeguy
Novi Sad

Član broj: 46545
Poruke: 324
*.com
Via: [es] mailing liste



Profil

icon Re: Kopiranje podataka iz jedne tabele u drugu sa AutoNumber kolonom11.04.2008. u 02:41
zašto će se "zakucati"?
11.04.2008. u 02:41 

Getsbi
Miroljub Zahorjanski
Vršac

Moderator
Član broj: 124608
Poruke: 1153
91.150.96.*



Profil

icon Re: Kopiranje podataka iz jedne tabele u drugu sa AutoNumber kolonom11.04.2008. u 05:46
Citat:
Catch 22: Takva tabela u kojoj "PK autonumber rupe" nisu nastale brisanjem slogova će vremenom (relativno brzo) da se "zakuca" i neće dozvoljavati nove unose!

Eventualno "zakucavanja" nove tabele sprečiće Compact and Repair Dtatabase koji treba da se uvek uradi nakon ovakvog administriranja tabelama. Takođe držanje uključene opcije: Tools, Option, General, Compact on Close; smatram uz arhiviranje, jednim od uslova za "higijenu" baze.

Citat:
izonic: Prenos autonumber polja u drugu tabelu a da ostane autonumber je veoma mukotrpno ali itzvodivo a kodom.
Podigne se prva tabela koja je puna u recordsete te druga tabela koju zelimo puniti u recordset.
Znaci imamo rs1 i rs2.

rs1 jedan stavimo u doo petlju a rs2 idemo sa opciom add.new pa update.
Nakon toga idemo rs2.mowelast na zadnji te ucitamo polje autonumber i uporedimo ga sa poljem autonumber rs1 ako nije isto onda brisemo red rs2.delete i update.

Upravo to radi Append query. Samo mi se čini da je s njim rešenje elegantnije nego s VBA kodom.

[Ovu poruku je menjao Getsbi dana 11.04.2008. u 17:36 GMT+1]
I'll know what I want, when I see it.
11.04.2008. u 05:46 

Shadowed
.NET developer

SuperModerator
Član broj: 649
Poruke: 8669
*.static.sbb.rs.

Sajt: www.diskusije.net


Profil

icon Re: Kopiranje podataka iz jedne tabele u drugu sa AutoNumber kolonom11.04.2008. u 09:52
Append query resio stvar. Zahvaljujem.
A izgleda da je i cela stvar (ciji je ovo samo deo) resena ovim; woohoo :]
11.04.2008. u 09:52 

Catch 22
Vladimir Ćurčić
Terra Incognita

Član broj: 148083
Poruke: 2603
*.SMIN.panline.net.

Jabber: catch22@elitesecurity.org
ICQ: 16379907


Profil

icon Re: Kopiranje podataka iz jedne tabele u drugu sa AutoNumber kolonom11.04.2008. u 14:29
Citat:
Getsbi: Eventualno "zakucavanja" nove tabele sprečiće Compact and Repair Dtatabase koji treba da se uvek uradi nakon ovakvog administriranja tabelama. Takođe držanje uključene opcije: Tools, Option, General, Compact on Close; smatram uz arhiviranje, jednim od uslova za "higijenu" baze..

Navedena "higijena" se podrazumeva, nažalost iskustva iz prakse međutim pokazuju da to ne sprečava mogućnost pojavljivanja problema sa "zakucavanjem"...
Takve probleme sam rešavao gore opisanim uvođenjeg privremenog numeric polja (nije autonumber), kopiranjem "bušnih ID auto number podataka" u to polje, pa korišćenjem tog polja za povezivanje tabela kod pravljenje append query...
U slučajevima "zakucavanja" tabela, jedino je pomagao opisani način kopiranja u novu uz čišćenje rupa u autonumber polju...
Ali kako god... razna iskustva i različite potrebe zahtevaju različita rešenja...

PS
Obično u file propertis dodajem opciju "Compact data base" u meniju "desni klik" miša za mdb fajlove...
11.04.2008. u 14:29 

Getsbi
Miroljub Zahorjanski
Vršac

Moderator
Član broj: 124608
Poruke: 1153
79.101.161.*



Profil

icon Re: Kopiranje podataka iz jedne tabele u drugu sa AutoNumber kolonom11.04.2008. u 16:41
Nisam do sada imao loša iskustva sa Autonumber i "zakucavanjem". No nikad se ne zna. Zapamtiću ovaj savet.
Drago mi je da smo rešili ovaj problem i da Shadowed nije morao da koristi svoje programersko umeće u .net-u.
I da ne zaboravimo. Kiro je prvi dao ideju.
I'll know what I want, when I see it.
11.04.2008. u 16:41 

[es] :: Access :: Kopiranje podataka iz jedne tabele u drugu sa AutoNumber kolonom

[ Pregleda: 1015 | Odgovora: 17 ]

Postavi temu Odgovori

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