16. juni 2003 - 18:10
Der er
18 kommentarer og 2 løsninger
id = 0,1,2,3,4,6
Jeg har en database, hvor den første ID er nødtil at være 0 Dette er nemt nok: Man opretter den første, og ændrer 1 til 0 Man opretter så selv den næste, for at tvinge den til at være 1 (og ikke 2, som den ellers ville) Når jeg så via asp vil oprette en ny, så får den rigtig nok id = 2 osv... Men hvis jeg går ind og sletter en tabel, f.eks. 5, så vil den næste gang oprette 6 efter 4.. Kan man på en eller anden måde få den selv til at finde ud af, at den skal tage det næste nummer, også selvom man manuelt har slettet en..?
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
Du kan jo lave et tjek på om rækken fem eksisterer. Og hvis den ikke gør så opretter du den.
Ja; istedet for at oprette dit Id som INTEGER, så opret det som INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY Uha .. det var større omgang, men nu er dit felt en Integer, som ikke kan være nul, og som automatisk skal tælles op. Derudover er det primary key (=det er indexeret - opslag går hurtigere).
... læser lige den anden kommentar der kom 3 sek. før min. Er der noget jeg har misforstået i opgaven? :-)
Men når du nu har et felt kan han vel bare lave sin insert således : Set rs = Conn.Execute("Select Max(id) AS MaxID From Tabelnavn") id = MaxID + 1 Conn.Execute("Insert into tabelnavn(id) values(" & id &")")
Eller er jeg helt forkert på den ?
Den første ID skal være 0 Prøver -master-d- forslag..
Kan i lige forklare hvordan jeg får en dato ind i tabellen.. Lige nu bruger jeg nemlig 2xConn.Execute: .... strSQL = strSQL & "'" & info & "') " Conn.Execute(strSQL) strSQL = "Update tabelnavn SET dato = now() where name ='" & name & "'" Conn.Execute(strSQL) Det virker nemlig ikke med bare at sætte now() ind i den første
strSQL = "Update tabelnavn SET dato = '" & now() &"' where name ='" & name & "'" Conn.Execute(strSQL) Sådan der.
.. Det jeg skrev virker fint, men jeg vil have den med i den første Conn.execute Der virker denne ikke: ....strSQL = strSQL & "'" & now() & "', " strSQL = strSQL & "'" & info & "') "
16. juni 2003 - 19:13
#10
Så skal jeg nok se resten af strSQL.
16. juni 2003 - 19:13
#11
Kan ikke få denne til at virke.... Set rs = Conn.Execute("Select Max(id) AS MaxID From billeder") MaxID bliver bare "" ..Skal skal bare finde den sidste id-værdi
16. juni 2003 - 19:16
#12
now()-problemet: strConnection = "driver={MySQL};server=localhost;uid=***;" strConnection = strConnection & "pwd=***;database=***" Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open strConnection strSQL = "Insert into billeder (ip, name, titel, size, nick, dato) VALUES (" strSQL = strSQL & "'" & ipadr & "', " strSQL = strSQL & "'" & name & "', " strSQL = strSQL & "'" & titel & "', " strSQL = strSQL & "'" & size & "', " strSQL = strSQL & "'" & nick & "', " strSQL = strSQL & "'" & info & "') " Conn.Execute(strSQL) strSQL = "Update billeder SET dato = now() where name ='" & name & "'" Conn.Execute(strSQL) Conn.Close Set Conn = Nothing .... Sådan ser den ud lige nu.... men hvis jeg ligger now() op i den første Conn.Execute(strSQL), så virker det ikke
16. juni 2003 - 19:30
#13
Prøv lige : strSQL = "Insert into billeder (ip, name, titel, size, nick, dato) VALUES (" strSQL = strSQL & "'" & ipadr & "', " strSQL = strSQL & "'" & name & "', " strSQL = strSQL & "'" & titel & "', " strSQL = strSQL & "'" & size & "', " strSQL = strSQL & "'" & nick & "', " strSQL = strSQL & "'" & CDate(now) & "') " Conn.Execute(strSQL)
16. juni 2003 - 19:42
#14
Det virker ikke... den sætter bare 0000-00-00 00:00:00 ind .. har også prøvet med strSQL = strSQL & "'" & CDate(now()) & "') "
16. juni 2003 - 20:44
#15
Hvad så med ... dato = now strSQL = "Insert into billeder (ip, name, titel, size, nick, dato) VALUES (" strSQL = strSQL & "'" & ipadr & "', " strSQL = strSQL & "'" & name & "', " strSQL = strSQL & "'" & titel & "', " strSQL = strSQL & "'" & size & "', " strSQL = strSQL & "'" & nick & "', " strSQL = strSQL & "'" & dato & "') " Conn.Execute(strSQL)
16. juni 2003 - 21:30
#16
nope... dato bliver en masse tegn..
16. juni 2003 - 21:58
#17
hmmm... Det lyder da yderst besynderligt. Har du prøvet at sætte <%Session.LCId=1030%> øverst i dokumentet.
16. juni 2003 - 22:19
#18
Det er den ja og det virker også når jeg bruger strSQL = "Update billeder SET dato = now() where name ='" & name & "'" Conn.Execute(strSQL) bagefter. Men det kunne da være rart nok, hvis det kunne klares i første hug
16. juni 2003 - 22:22
#19
Det kan jeg ikke forstå...
29. juni 2003 - 13:18
#20
Prøv engang (hvis det stadig er relevant): Session.LCID = 1030 dato = Year(Date) & "-" & Month(Date) & "-" Day(Date) & " " & FormatDateTime(Now, vbLongTime) strSQL = "Insert into billeder (ip, name, titel, size, nick, dato) VALUES (" strSQL = strSQL & "'" & ipadr & "', " strSQL = strSQL & "'" & name & "', " strSQL = strSQL & "'" & titel & "', " strSQL = strSQL & "'" & size & "', " strSQL = strSQL & "'" & nick & "', " strSQL = strSQL & "'" & dato & "') " Conn.Execute(strSQL)
Computerworld tilbyder specialiserede kurser i database-management