/ Forside/ Teknologi / Udvikling / ASP / Spørgsmål
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
Autonummerering i ASP
Fra : Ditte
Vist : 895 gange
150 point
Dato : 27-04-01 12:00

Vi står og mangler en kode til databasen Access. Vi skal oprette en ny bruger i en tabel, der hedder kunder, samtidig skal den nye bruger tildeles et unikt kundenummer.
Efter oprettelsen skal resultaterne udskrives..!

På Forhånd Tak!

Ditte

 
 
Kommentar
Fra : engo


Dato : 27-04-01 12:14

Kan i ikke bare indsætte en integer som nøgle og bruge dette som et autonummereret felt i Access.

F.eks :

Kundenummer Navn Telefon .....osv

Hvor kundenummer er unikt samt autonummereret, når i så skal indsætte skriver i :

insert into kunder(navn,telefon,...) values('Kim','12312312',.....)

og når i så skal udskrive kunderne skriver i bare :

select * from kunder

Her er 2 eksempler :

Indsæt
<%
SQL = "insert into kunder(navn,telefon) values ('" & navn & "','" & telefon & "')" 'Ret til din egen sql

con = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=C:\Temp\dindatabase.mdb" 'Ret filnavn
set Rs = Server.CreateObject("ADODB.RecordSet")
RS.Open SQL, con
%>


Udskriv
<%
SQL = "Select * from kunder" 'Ret til din egen sql

con = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=C:\Temp\dindatabase.mdb" 'Ret filnavn
set Rs = Server.CreateObject("ADODB.RecordSet")
RS.Open SQL, con

do while not RS.eof
response.write rs("navn") & "<br>" 'Ret feltnavn
response.write rs("telefon") & "<br>" 'Ret feltnavn
rs.movenext
loop
%>


Engo

Kommentar
Fra : Ditte


Dato : 27-04-01 12:27

Det er ikke helt, det jeg mener, Engo..
Når en kunde opretter sig i vores internetportal, skal vedkommende have tildelt et kundenr, som er unikt.
Jeg er ikke så god til at formulere det, men hvis nu f.eks. Jens Hansen har kundenr. 1001, og han står som den nederste på listen af kundenumre, så er det meningen at den næste kunde skal have kundenr. 1002. Og det er lige netop den kode vi står og mangler, vi kan ikke lige finde en logisk udvej!!

På Forhånd Tak
Ditte

Kommentar
Fra : Nyhedsbruger


Dato : 27-04-01 11:42

Kan du ikke bare bruge autonummering i access??

"Ditte" <Ditte.news@kandu.dk> skrev i en meddelelse
news:xnbG6.62677$o4.5529007@news010.worldonline.dk...
> Vi står og mangler en kode til databasen Access. Vi skal oprette en ny
bruger i en tabel, der hedder kunder, samtidig skal den nye bruger tildeles
et unikt kundenummer.
> Efter oprettelsen skal resultaterne udskrives..!
>
> På Forhånd Tak!
>
> Ditte
>
> --
> Leveret af:
> http://www.kandu.dk/
> "Vejen til en hurtig løsning"
>



Kommentar
Fra : Ditte


Dato : 27-04-01 12:49

Vi er i øjeblikket i gang med et projekt, hvor vi skal lave vores egen interaktive portal. Vi må ikke benytte os af autonummereringen i Access. Men måske der kan laves noget men en løkke, som tæller sidste indtastede kundenr. og lægger en til??

Kommentar
Fra : engo


Dato : 27-04-01 14:17

Okay, du bliver nødt til at have en sorteringsnøgle for at kunne klare den opgave. F.eks. en oprettelsesdato.

Så kan du trække den sidste kunde ud :

select kundenr from kunder order by oprettetdato desc

nu skal du så tage kundenr og lægge 1 til, hvorefter du så kan oprette en ny kunde.

Det er den eneste måde du kan løse dette uden at bruge autonumre, som jeg ser det.

Engo

Kommentar
Fra : AntonV


Dato : 01-05-01 16:41

Hej
Lige et forslag:
Istedet for at bruge en sorteringsnøgle (oprettelsesdato) kan man bare hente det højeste
kundenr, såfremt dette er fortløbende, med følgende forespørgsel:
SELECT MAX(KUNDENR) FROM KUNDER
Den returnerer en værdi som du så lægger en til, og gemmer din nye kunde med dette nye kundenr.

mvh
AntonV

Kommentar
Fra : netsrac


Dato : 01-05-01 17:00

Antonv >> Ikke særlig smart da der kan være flere brugere tilsluttet på samme tid. Du skal bruge en anden metode, den er beskrevet her:

http://www.1script.com/asp0001.html

Accepteret svar
Fra : netsrac

Modtaget 150 point
Dato : 01-05-01 17:04

Det var et svar

Kommentar
Fra : AntonV


Dato : 01-05-01 17:25

netsrac >> Der må ikke bruges autonumbering! (hvorfor ved jeg ikke!), og det gør det eksempel du har sendt vistnok.
Noget andet er, hvis du laver forespørgslen (SELECT MAX(.......) serverside vil du ikke løbe ind i problemet.
Måske skal man oprette kunden samtidig med at man laver sin forespørgsel, noget i stil med:
INSERT INTO KUNDER VALUES ((SELECT MAX(KUNDENR) FROM KUNDER) + 1, val2, val3, val4)
Syntaksen er kun et eksempel.

mvh
AntonV


Kommentar
Fra : netsrac


Dato : 01-05-01 17:31

Ja subqueryes var vel en mulighed...

AntonV >> Ja, jeg kan jo bare læse hele tråden, undskyld, hvad er grunden til at der ikke må bruges autonummerering Ditte ? Det er da det mest unikke du kan få.

Kommentar
Fra : Ditte


Dato : 02-05-01 08:22

Grunden til at der ikke må bruges autonummerering er, at vi som opgave skal lave en internetportal i access! Vi har fået at vide at vi ikke må bruge autonummereringen i access, og skal lave det selv i asp..!

Kommentar
Fra : netsrac


Dato : 02-05-01 08:38

Hvis det er en opgave, så har i vel også udarbejdet et ER diagram ? Hvis ikke i må bruge autonummerering, så må i da have et andet felt som kan gøre det ud fra primær nøgle, såsom telefon nummer ?

I kan jo lade telefonnummer være primær nøgle, i har evt. også email som kandidat nøgle.

Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408914
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste