Forum » Programiranje » INSERT v več tabel
INSERT v več tabel
Matej_ ::
Še en problem z SQL-om. Baza je access-ova in vanjo moram vstaviti več zapisov naenkrat.
Približno tako: V tabeli kupcev je field autonumber ključ, ki se potem upošteva v ostalih tabelah ki so vezane na to, vanje pa se vpiše po več vnosov, za razliko od glavne v kaktero gre le en. Kako bi lahko z enim insertom ali kakšno bolj elegantno rešitvijo od mojih vstavil podatke v več tabel.
Sedaj imam tri rešitve. Prva je s transakcijo (BeginTrans -> CommitTrans), druga z dodajanjem novega polja recordsetu (rset.AddNew ID = rset.Fields!AutoNumberFieldName rset.Update End Sub), tretja z prebiranjem iz baze (najprej v prvo tabelo, potem preberem autonumber in na to še v drugi dve)
Za pomoč se že vnaprej zahvaljujem.
Približno tako: V tabeli kupcev je field autonumber ključ, ki se potem upošteva v ostalih tabelah ki so vezane na to, vanje pa se vpiše po več vnosov, za razliko od glavne v kaktero gre le en. Kako bi lahko z enim insertom ali kakšno bolj elegantno rešitvijo od mojih vstavil podatke v več tabel.
Sedaj imam tri rešitve. Prva je s transakcijo (BeginTrans -> CommitTrans), druga z dodajanjem novega polja recordsetu (rset.AddNew ID = rset.Fields!AutoNumberFieldName rset.Update End Sub), tretja z prebiranjem iz baze (najprej v prvo tabelo, potem preberem autonumber in na to še v drugi dve)
Za pomoč se že vnaprej zahvaljujem.
destiny ::
Z enim insertom ne boš mogel narest vnosa v več tabel!
Sploh pa ne v Accessu, ki ne podpira hkratnega izvajanja več stavkov (npr. pri SQL Serverju to lahko storiš ala Insert into ... values...; select scope_identity() - to ti vrne v program autoid vrednosti, še vedno pa jih ne morš direktno vpisat v child tabele). Jest bi za to nalogo uporabil transakcijo v navezi s katerokoli metodo za vstavljanje autoid polja v child tabele.
Mam en dober primer za access v vb.net-u, ki pa je nažalost v VB 6 neuporaben...
Sploh pa ne v Accessu, ki ne podpira hkratnega izvajanja več stavkov (npr. pri SQL Serverju to lahko storiš ala Insert into ... values...; select scope_identity() - to ti vrne v program autoid vrednosti, še vedno pa jih ne morš direktno vpisat v child tabele). Jest bi za to nalogo uporabil transakcijo v navezi s katerokoli metodo za vstavljanje autoid polja v child tabele.
Mam en dober primer za access v vb.net-u, ki pa je nažalost v VB 6 neuporaben...
mp218 ::
kaj lahko postaš celo kodo..
najbolje je verjetno s transakcijo...saj lepa navada je...
Drugač pa tud ostale rešitve niso slabe...
najbolje je verjetno s transakcijo...saj lepa navada je...
Drugač pa tud ostale rešitve niso slabe...
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | SQL pomočOddelek: Programiranje | 2389 (1803) | miko22 |
» | Nova različica podatkovne baze PostgreSQL 9.5 prinaša obilico novosti (strani: 1 2 )Oddelek: Novice / Ostala programska oprema | 17671 (14537) | McAjvar |
» | OpenOffice BaseOddelek: Programska oprema | 1353 (1177) | echoman |
» | [T-SQL] Kako vnest podatek v bazo in da ti hkrati vrne id?Oddelek: Programiranje | 2895 (2613) | dmok |
» | Kako do podatka v queryu iz VisualBasicScripta (VBA) v accessu?Oddelek: Programiranje | 2155 (2040) | Fim |