/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Hente ID værdi fra den tabel jeg lige har ~
Fra : Malte von Sehested


Dato : 05-11-01 13:53

Hej NG,

Jeg sidder og arbejder med en ASP side der snakker med en ms-access
database.

I databasen har jeg flere tabeller og skal, når jeg opretter en ny entry,
bruge ID værdien. ID er et autofelt der automatisk tæller op.

Jeg har altså en INSERT hvor jeg sætter felt1 og felt2 ind, men tabellen
består af id, felt1, felt2 og jeg har brug for at kende værdien af ID.

Er der en måde hvorved jeg kan få denne værdi oplyst ? Det skal lige
bemærkes at hverken felt1 eller felt2 er unikke.

På forhånd tak
/Malte



 
 
Jesper Stocholm (05-11-2001)
Kommentar
Fra : Jesper Stocholm


Dato : 05-11-01 14:32

Malte von Sehested wrote in news:9s626g$t6c$1@sunsite.dk:

> Hej NG,
>
> Jeg sidder og arbejder med en ASP side der snakker med en ms-access
> database.
>
> I databasen har jeg flere tabeller og skal, når jeg opretter en ny entry,
> bruge ID værdien. ID er et autofelt der automatisk tæller op.
>
> Jeg har altså en INSERT hvor jeg sætter felt1 og felt2 ind, men tabellen
> består af id, felt1, felt2 og jeg har brug for at kende værdien af ID.
>
> Er der en måde hvorved jeg kan få denne værdi oplyst ? Det skal lige
> bemærkes at hverken felt1 eller felt2 er unikke.
>

Det 100% korrekte svar [1] er "nej" ... men du kan komme tæt på. Da ID er en
kolonne, der automatisk tælles én op, så kan du efter INSERT lave en

strSQL = "SELECT MAX(id) as NewRecord FROM Table"

.... men hvis du ikke er 100% sikker på, at der er nogen, der kan komme og
lave opdateringer imellem disse to SQL-statements, så kan du risikere, at du
får forkerte tal.

Ellers kan du jo vælge at vedligeholde dine IDs selv ... eller skifte din
db-backend ud til noget andet end Access :) Jeg mener, at mySQL kan noget af
det du gerne vil ... og MS SQL kan arbejde med Stored procedures, der også
kan hjælpe dig en del af vejen ... :)

[1] Givet at du arbejder med Access

--
Jesper Stocholm
http://stocholm.dk (snart online igen)

Malte von Sehested (05-11-2001)
Kommentar
Fra : Malte von Sehested


Dato : 05-11-01 15:09

Tak for hjælpen.

Det var lige præcis den løsning jeg havde valgt, men den er jo ikke helt
sikker (ie. hvis to samtidige opdateringer finder sted). Jeg havde håbet på
at man kunne noget af det samme som i MySql hvor man netop kan få at vide
HVAD der lige skete med den og den kommandolinie...

Det er ikke sådan når man lige skal lave noget i ASP...

/Malte

"Jesper Stocholm" <spam@stocholm.dk> skrev i en meddelelse
news:Xns915093CF95A0Dspamstocholmdk@192.38.208.81...
> Malte von Sehested wrote in news:9s626g$t6c$1@sunsite.dk:
>
> > Hej NG,
> >
> > Jeg sidder og arbejder med en ASP side der snakker med en ms-access
> > database.
> >
> > I databasen har jeg flere tabeller og skal, når jeg opretter en ny
entry,
> > bruge ID værdien. ID er et autofelt der automatisk tæller op.
> >
> > Jeg har altså en INSERT hvor jeg sætter felt1 og felt2 ind, men tabellen
> > består af id, felt1, felt2 og jeg har brug for at kende værdien af ID.
> >
> > Er der en måde hvorved jeg kan få denne værdi oplyst ? Det skal lige
> > bemærkes at hverken felt1 eller felt2 er unikke.
> >
>
> Det 100% korrekte svar [1] er "nej" ... men du kan komme tæt på. Da ID er
en
> kolonne, der automatisk tælles én op, så kan du efter INSERT lave en
>
> strSQL = "SELECT MAX(id) as NewRecord FROM Table"
>
> ... men hvis du ikke er 100% sikker på, at der er nogen, der kan komme og
> lave opdateringer imellem disse to SQL-statements, så kan du risikere, at
du
> får forkerte tal.
>
> Ellers kan du jo vælge at vedligeholde dine IDs selv ... eller skifte din
> db-backend ud til noget andet end Access :) Jeg mener, at mySQL kan noget
af
> det du gerne vil ... og MS SQL kan arbejde med Stored procedures, der også
> kan hjælpe dig en del af vejen ... :)
>
> [1] Givet at du arbejder med Access
>
> --
> Jesper Stocholm
> http://stocholm.dk (snart online igen)



Jesper Stocholm (05-11-2001)
Kommentar
Fra : Jesper Stocholm


Dato : 05-11-01 15:17

Malte von Sehested wrote in news:9s66lb$dha$1@sunsite.dk:

> Tak for hjælpen.
>
> Det var lige præcis den løsning jeg havde valgt, men den er jo ikke
> helt sikker (ie. hvis to samtidige opdateringer finder sted). Jeg havde
> håbet på at man kunne noget af det samme som i MySql hvor man netop kan
> få at vide HVAD der lige skete med den og den kommandolinie...
>
> Det er ikke sådan når man lige skal lave noget i ASP...
>

bare lige for at præcisere ... det har ikke noget med ASP at gøre ... det er
dig, der har valgt den forkerte db-backend ... nemlig MS-Access.

:)

--
Jesper Stocholm
http://stocholm.dk (snart online igen)

Boycot meningsmålingerne ved enten at sige nej - eller lyv !

Anders Holbøll (05-11-2001)
Kommentar
Fra : Anders Holbøll


Dato : 05-11-01 17:31

Jesper Stocholm wrote:
> Malte von Sehested wrote in news:9s626g$t6c$1@sunsite.dk:
> > I databasen har jeg flere tabeller og skal, når jeg opretter
> > en ny entry, bruge ID værdien. ID er et autofelt der
> > automatisk tæller op.
> > Er der en måde hvorved jeg kan få denne værdi oplyst?
>
> Det 100% korrekte svar [1] er "nej"

Hmm... Givet at der ikke bliver indsat værdier særlig tit, kan man vel
åbne tabellen for redigering med en tabellås, oprette rækken og låse
tabellen op igen.

--
Anders

Jesper Stocholm (05-11-2001)
Kommentar
Fra : Jesper Stocholm


Dato : 05-11-01 18:33

Anders Holbøll wrote in news:3BE6BEC1.16CA21DF@serveren.dk:

> Jesper Stocholm wrote:
>> Malte von Sehested wrote in news:9s626g$t6c$1@sunsite.dk:
>> > I databasen har jeg flere tabeller og skal, når jeg opretter
>> > en ny entry, bruge ID værdien. ID er et autofelt der
>> > automatisk tæller op.
>> > Er der en måde hvorved jeg kan få denne værdi oplyst?
>>
>> Det 100% korrekte svar [1] er "nej"
>
> Hmm... Givet at der ikke bliver indsat værdier særlig tit, kan man vel
> åbne tabellen for redigering med en tabellås, oprette rækken og låse
> tabellen op igen.
>

ja ... jeg ved godt, at det er en teoretisk situation, at det ikke skulle
kunne lade sig gøre i de fleste tilfælde med de muligheder, der er listet
tidligere ... det var derfor jeg skrev, at man kunne komme gevaldigt tæt på
at opnå det beskrevne krav.

Det du foreslår er vel så:

1.Lås tabel ved indsætning
2.Vælg den maksimale værdi i ID-kolonnen
3.Åbn tabel igen.

.... og det skulle nok kunne virke :)

--
Jesper Stocholm
http://stocholm.dk

Boycot meningsmålingerne ved enten at sige nej - eller lyv !

Rune Baess (05-11-2001)
Kommentar
Fra : Rune Baess


Dato : 05-11-01 19:23


"Jesper Stocholm" <spam@stocholm.dk> wrote in message
news:Xns915093CF95A0Dspamstocholmdk@192.38.208.81...

> strSQL = "SELECT MAX(id) as NewRecord FROM Table"
>
> ... men hvis du ikke er 100% sikker på, at der er nogen, der kan komme og
> lave opdateringer imellem disse to SQL-statements, så kan du risikere, at
du
> får forkerte tal.


Nu har jeg ikke stjerne meget styr på ADO, men er der ikke en mulighed for
at få det nye id frem efter "rs.update":

rs.addnew
(..)
rs.update
nyid = rs("id")

???

- Bare en idé

Rune



Bamsi (05-11-2001)
Kommentar
Fra : Bamsi


Dato : 05-11-01 17:24

Prøv at se på http://activeserverpages.dk/forum/forum.asp?mid=8597, der er
folk med samme problem

Hilsen
Bamsi



Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408946
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste