|
| Opdatering af flere tabeller på samme tid ~ Fra : Hans L. |
Dato : 29-12-00 21:28 |
|
Hej, jeg har brugt en ms access database fra ASP via. ADO/SQL i et stykke
tid ! jeg har også opdateret flere tabeller på samme tid, men har dog ikke
gjort det rigtigt ! Jeg bruger bare 2 updates lige efter hinanden hver der
har været relationer, og dermed er den referentielle integritet vel ikke
overholdt i det øjeblik, den ene update er foretaget, vel ?
Update <tablename> <fieldname>='aadsf' ...osv ! er hvad jeg bare bruger nu 2
gange !
Hvordan gør jeg det rigtigt ?
Håber nogen kan hjælpe mig, for det går mig lidt på.
På forhånd tak
HL
| |
Lauritz Jensen (29-12-2000)
| Kommentar Fra : Lauritz Jensen |
Dato : 29-12-00 21:46 |
|
"Hans L." wrote:
>
> [...] Jeg bruger bare 2 updates lige efter hinanden hver der
> har været relationer, og dermed er den referentielle integritet vel ikke
> overholdt i det øjeblik, den ene update er foretaget, vel ?
Det er vel kun et problem hvis du opdaterer i primærnøglen og så er
problemet vel nærmere, at du ikke benytter en "dum" nøgle.
Men der skal en "update" til hver tabel.
(Du skal nok ikke crossposte i *så* mange grupper! Husk iøvrigt at sætte
en fut hvis du skal crossposte)
--
Lauritz
| |
Hans L. (30-12-2000)
| Kommentar Fra : Hans L. |
Dato : 30-12-00 15:29 |
|
> Det er vel kun et problem hvis du opdaterer i primærnøglen og så er
> problemet vel nærmere, at du ikke benytter en "dum" nøgle.
> Men der skal en "update" til hver tabel.
Det er et generelt problem jeg har hvis der f.eks er et 1 til mange forhold
i mellem 2 tabeller ! ..I det jeg oprette noget i den ene tabel, vil der
dermed ikke være noget i den anden tabel " i et øjeblik" og det er jo noget
gris .ik' ?
der er noget med at man kan bruge 2 updates, men commit'e dem samtidig
...eller noget ! det er det jeg har brug for :[
> Husk iøvrigt at sætte en fut hvis du skal crossposte)
Det kan godt være at jeg spørger dumt. ..men hvad er en fut ?
"Lauritz Jensen" <lauritz2@hotmail.com> wrote in message
news:3A4CF801.38D538AC@hotmail.com...
> "Hans L." wrote:
> >
> > [...] Jeg bruger bare 2 updates lige efter hinanden hver der
> > har været relationer, og dermed er den referentielle integritet vel ikke
> > overholdt i det øjeblik, den ene update er foretaget, vel ?
>
> Det er vel kun et problem hvis du opdaterer i primærnøglen og så er
> problemet vel nærmere, at du ikke benytter en "dum" nøgle.
> Men der skal en "update" til hver tabel.
>
> (Du skal nok ikke crossposte i *så* mange grupper! Husk iøvrigt at sætte
> en fut hvis du skal crossposte)
>
> --
> Lauritz
| |
Peter Laursen (30-12-2000)
| Kommentar Fra : Peter Laursen |
Dato : 30-12-00 15:57 |
|
Hans L. skrev i meddelelsen <92krcl$2hno$1@news.cybercity.dk>...
>Det er et generelt problem jeg har hvis der f.eks er et 1 til mange forhold
>i mellem 2 tabeller ! ..I det jeg oprette noget i den ene tabel, vil der
>dermed ikke være noget i den anden tabel " i et øjeblik" og det er jo noget
>gris .ik' ?
Min erfaring er mest med Oracle, jeg kender ikke så meget til Access/ADO, men som du skriver er det jo et generelt problem hvis løsning hedder transaktionsstyring.
Før du begynder din opdatering skal du starte en transaktion, derefter lave alle dine updates. Hvis der sker en fejl før alle updates er færdige kan du rulle alle updates tilbage. I pseudokode:
<Start transaktion> (databaseafhængig)
Opdater masterrecord
Opdater childrecords
Hvis alt gik godt så
<commit transaktion>
Ellers
<rollback transaction>
Peter Laursen
| |
Nikolaj Kolbe (30-12-2000)
| Kommentar Fra : Nikolaj Kolbe |
Dato : 30-12-00 15:59 |
| | |
Lauritz Jensen (30-12-2000)
| Kommentar Fra : Lauritz Jensen |
Dato : 30-12-00 16:19 |
|
"Hans L." wrote:
>
> > Det er vel kun et problem hvis du opdaterer i primærnøglen og så er
> > problemet vel nærmere, at du ikke benytter en "dum" nøgle.
> > Men der skal en "update" til hver tabel.
>
> Det er et generelt problem jeg har hvis der f.eks er et 1 til mange forhold
> i mellem 2 tabeller ! ..I det jeg oprette noget i den ene tabel, vil der
> dermed ikke være noget i den anden tabel " i et øjeblik" og det er jo noget
> gris .ik' ?
>
> der er noget med at man kan bruge 2 updates, men commit'e dem samtidig
> ..eller noget ! det er det jeg har brug for :[
Du snakker skiftevis om at oprette og opdaterer. Hvad er det du gerne
vil?
Men det er ikke noget problem hvis du har en en-til-mange at lave en
indsæt. Har du f.eks. en tabel med varer og en med forhandlerer, hvor en
forhandler kan forhandle flere varer, kan du jo sanktens oprette en ny
forhandler (en forhandler behøver jo ikke at have nogle vare) og
derefter oprette nogle vare, der benytter den nye forhandler. Det er der
ikke noget "gris" i. Hvor er det du ser problemet?
> > Husk iøvrigt at sætte en fut hvis du skal crossposte)
> Det kan godt være at jeg spørger dumt. ..men hvad er en fut ?
"Follow Up To". Du sætter den for, at vi kan få samlet diskutionen i en
gruppe, således at vi ikke får for mange redundante indlæg i forskellige
grupper.
--
Lauritz
| |
|
|