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

Višestruki Insert u tablici

[es] :: Access :: Višestruki Insert u tablici

Strane: 1 2

[ Pregleda: 5786 | Odgovora: 30 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

itf
Zagreb

Član broj: 59794
Poruke: 993
161.53.237.*



+9 Profil

icon Višestruki Insert u tablici17.02.2011. u 12:43 - pre 159 meseci
Primjetio sam da MS Access baza ne dopušta višestruke insert upite kao npr. MySQL gdje je to sasvim normalna stvar.

Moj problem je što imam oko 65000 sql insert izjava koje bi htio izvršiti čim brže nad Access bazom. Koristim C++ i jedino rješenje mi je petljom izvršavati insert jedan po jedan, a to je zaista jako sporo. Da li je moguće napraviti nekakav sql upit koji bi odjednom ubacio svih tih 65000 zapisa koje ja trebam, a da radi nad MS Accessom?
 
Odgovor na temu

Getsbi

Moderator
Član broj: 124608
Poruke: 2828



+45 Profil

icon Re: Višestruki Insert u tablici17.02.2011. u 14:19 - pre 159 meseci
To što si primetio nije posledica INSERT INTO u query-ju već, verovatno da imaš PK nad nekom kolonom u ciljnoj tabeli, te Access ne dozvoljava dupliranje zapisa iz izvorne u ciljnu tabelu, po toj koloni. INSERT INTO radi ineče, upravo to što od nje zahtevaš, bez obzira na broj ponavljanja upita.
 
Odgovor na temu

itf
Zagreb

Član broj: 59794
Poruke: 993
161.53.237.*



+9 Profil

icon Re: Višestruki Insert u tablici17.02.2011. u 14:24 - pre 159 meseci
Nije riječ o tome već o jednom query-u koji sadrži više insert naredbi.
 
Odgovor na temu

Getsbi

Moderator
Član broj: 124608
Poruke: 2828



+45 Profil

icon Re: Višestruki Insert u tablici17.02.2011. u 14:36 - pre 159 meseci
Napiši sintaksu tog query-ja, da vidim šta pokušavaš.
 
Odgovor na temu

itf
Zagreb

Član broj: 59794
Poruke: 993
161.53.237.*



+9 Profil

icon Re: Višestruki Insert u tablici17.02.2011. u 14:49 - pre 159 meseci
INSERT INTO Table1 ( ColA ) VALUES (123);
INSERT INTO Table1 ( ColA ) VALUES (456);

Table1 je prazna tablica s ID (autonumber) kao PK.
 
Odgovor na temu

biske86
Ivan Biševac
Zubin Potok

Član broj: 62435
Poruke: 979
*.dynamic.isp.telekom.rs.

Sajt: biske.rs


+39 Profil

icon Re: Višestruki Insert u tablici17.02.2011. u 14:54 - pre 159 meseci
Jel tebi treba:

Code (sql):

INSERT INTO Table1 (ID) VALUES (123), (456), (344), (233);
 

 
Odgovor na temu

itf
Zagreb

Član broj: 59794
Poruke: 993
161.53.237.*



+9 Profil

icon Re: Višestruki Insert u tablici17.02.2011. u 14:57 - pre 159 meseci
Ne radi niti to. To sve inače radi na nekoj boljoj bazi tipa Mysql Sql server i sl., ali ne i u accessu.
 
Odgovor na temu

biske86
Ivan Biševac
Zubin Potok

Član broj: 62435
Poruke: 979
*.dynamic.isp.telekom.rs.

Sajt: biske.rs


+39 Profil

icon Re: Višestruki Insert u tablici17.02.2011. u 14:59 - pre 159 meseci
Da, znam. Ja sam samo hteo da kažem Getsbiju šta tebi treba.
 
Odgovor na temu

Getsbi

Moderator
Član broj: 124608
Poruke: 2828



+45 Profil

icon Re: Višestruki Insert u tablici17.02.2011. u 15:08 - pre 159 meseci
Jedino da te vrednosti staviš u tabelu, a onda uradiš INSERT INTO.. SELECT...FROM. Tih 65000 zapisa su verovatno negde u tabeli. To je upravo ono na čega sam prvo pomislio kad si postavio pitanje.
 
Odgovor na temu

itf
Zagreb

Član broj: 59794
Poruke: 993
161.53.237.*



+9 Profil

icon Re: Višestruki Insert u tablici17.02.2011. u 15:13 - pre 159 meseci
Nažalost, ja programski (u svojoj EXE aplikaciji) generiram vrijednosti koje onda trebam prebaciti u bazu. Meni nije problem programski generirati bilo kakav sql upit, no prisiljen sam insert upite izvršavati jedan po jedan, a ne sve njih kao dio jednog velikog sql upita.
 
Odgovor na temu

MarkoBalkan

Član broj: 141124
Poruke: 1624
46.188.198.*



+19 Profil

icon Re: Višestruki Insert u tablici17.02.2011. u 16:09 - pre 159 meseci
a zašto access?

probaj sa firebird embeded bazom ili sql lite.
 
Odgovor na temu

itf
Zagreb

Član broj: 59794
Poruke: 993
161.53.237.*



+9 Profil

icon Re: Višestruki Insert u tablici17.02.2011. u 16:25 - pre 159 meseci
Access mi je nekako najpogodniji jer za njega jedino trebaš DB Jet provider koji je uvijek instaliran u windowsima po defaultu. Za ove druge baze mi je uvijek upitno da li će raditi samo od sebe ili moram klijenta tjerati da još instalira milijun drugih stvari.
 
Odgovor na temu

MarkoBalkan

Član broj: 141124
Poruke: 1624
46.188.198.*



+19 Profil

icon Re: Višestruki Insert u tablici17.02.2011. u 17:56 - pre 159 meseci
stavi sql lite i driver za bazu i to je to.

jer ako za bazu koristiš access prepostavljam da će aplikaciju koristiti jedna osoba, onda si mogao cijelu aplikaciju napraviti u access-u.
 
Odgovor na temu

itf
Zagreb

Član broj: 59794
Poruke: 993
*.adsl.net.t-com.hr.



+9 Profil

icon Re: Višestruki Insert u tablici17.02.2011. u 18:17 - pre 159 meseci
Eh, u tome i jest stvar što ja želim izbjeći instaliranje bilo kakvih drugih drivera, klijenata, servisa itd. Za Access bazu po defaultu je sve uvijek u samim windowsima i sve radi. Čak ne treba imati ni samu MS Access aplikaciju da bi koristio tu bazu.

A sama aplikacija je već stvar za sebe niti ima veze s accessom. Access baza mi samo treba za pohranu podataka.
 
Odgovor na temu

MarkoBalkan

Član broj: 141124
Poruke: 1624
178.160.124.*



+19 Profil

icon Re: Višestruki Insert u tablici17.02.2011. u 18:46 - pre 159 meseci
mislim da sql lite nema instalacije nego je samo file koji distribuiraš sa exe file-om kao i driver(dll file).
kad napraviš build sve ti bude recimo u release file-u i to samo proslijediš klijentu.

 
Odgovor na temu

izonic
ishab zonic
Tuzla

Član broj: 38128
Poruke: 591
*.PPPoE-7077.sa.bih.net.ba.

Sajt: www.icentar.ba


+2 Profil

icon Re: Višestruki Insert u tablici18.02.2011. u 11:34 - pre 159 meseci
Access ne dopusta visestruki insert ukoliko se radi o vanjskim vrijednostima, medjutim ukoliko se radi o prebacivanju iz tabele u tabelu to je moguce izvesti i to je vec zakljuceno cini mi se.
Ovdje se namece pitanje zasto to treba i jeli za jednokratnu upotrebu?
Ukoliko imamo neke podatke iz druge baze onda nam nije bitna brzina jer cemo to prenijeti mi i to jedanput i nece operater app. to koristiti.
Ukoliko se radi o izracunatim podacima kao sto se to navodi gore onda ne vidim potrebu ih zapisivati jer nevjerujem da racunanje tako dugo traje da se bas mora zapisati zmog toga da nebi opet gubili vrijeme kada nam to zatreba.
Bolje je zapisati parametre na osnovu cega smo to izracunali pa pokrenuti kad. nam zatreba.
Ako to ipak radimo radi prikaza na monitoru (tabelarni prikaz) i to nije razlog jer u c-u moze se to lagano napraviti.

Ako sad i pored ovoga zelis se odluciti da to zapises u bazu onda ne vidim razlog da to bude sporo ako u petlju stavis ovako:
"INSERT INTO ImeTabele(Polje1,Polje2)
VALUES(" Variabl1 "," Variabla2 ")"
Vrijednosti varijabili bi se mijenjale kroz petlju na osnovu koje se dobijaju podaci.

Opet napominjem da ako se radi o izracunatim podacima kako se tvrdi drugoga nacina i nema.
Suludo bi bilo sve te podatke zapamtiti u memoriji pa ih tek po izvrsenju cijelog koda zapisati.

Ako se ipak radi o podacima iz druge baze sto i pretpostavljam i koji su zapisani kao SQL onda ovo gore navedeno bilo izvodivo jer bi kodom vadio vrijednosti iz txt fajla.
Za to se ima potreba ako nisu dostupni ovi podaci na toj (SQL, MySQL) ili nekoj drugoj bazi a ako jesu onda se sa baze boze zapisati file txt koji ima strukturu baze i onda to prihvatati u Access bazi i to ide jednostavno.

Nadam se da sam pomogao.

zxz
 
Odgovor na temu

itf
Zagreb

Član broj: 59794
Poruke: 993
161.53.237.*



+9 Profil

icon Re: Višestruki Insert u tablici18.02.2011. u 13:10 - pre 159 meseci
Citat:
izonic:...
Bolje je zapisati parametre na osnovu cega smo to izracunali pa pokrenuti kad. nam zatreba.
Podaci koji se generiraju imaju "random komponentu" pa to nažalost nije moguće...

Npr.: Aplikacija A u jednom trenutku za sve studente slučajnim odabirom generira brojeve zadataka koje pojedini student treba rješiti. Znači, svima su unaprijed poznati njihovi zadaci i u isto vrijeme. Aplikacija B pri validaciji rješenja tih zadataka mora nekako znati koje je zadatke dobio koji student te stoga trebam bazu da to spremim.
 
Odgovor na temu

mkaras
Marko Karas
Beograd

Član broj: 66087
Poruke: 427



+19 Profil

icon Re: Višestruki Insert u tablici18.02.2011. u 14:33 - pre 159 meseci
@itf:
U prvom postu je rečeno da treba oko 65000 inserta u bazu. Koliko je to
vremenski? Koji algoritam koristiš za unos podataka?
Pošto si rekao da koristiš C++ pretpostavljam da koristiš i ADO
biblioteku tako da nema nikakvih problema da se konektuješ na bazu,
otvotiš tabelu, u petlji uneseš šta hoćeš, zatvoriš tabelu i
diskonektuješ bazu i gotovo.Od toga brže ne može.
Ne vidim razlog da insistaraš na SQL-u

[Ovu poruku je menjao mkaras dana 19.02.2011. u 01:21 GMT+1]
 
Odgovor na temu

itf
Zagreb

Član broj: 59794
Poruke: 993
161.53.237.*



+9 Profil

icon Re: Višestruki Insert u tablici18.02.2011. u 15:16 - pre 159 meseci
Vremenski traje par minuta jer, kao što sam gore napisao, sekvencijalno izvršavam jedan po jedan sql upit. Zato i tražim rješenje da odjednom (ili barem nekako brže) sve prenesem u bazu.
 
Odgovor na temu

mkaras
Marko Karas
Beograd

Član broj: 66087
Poruke: 427



+19 Profil

icon Re: Višestruki Insert u tablici18.02.2011. u 15:18 - pre 159 meseci
Kako glasi algoritam po kome radiš? Bez koda, samo opisno
 
Odgovor na temu

[es] :: Access :: Višestruki Insert u tablici

Strane: 1 2

[ Pregleda: 5786 | Odgovora: 30 ] > FB > Twit

Postavi temu Odgovori

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