Avatar billede hhlundgaard Nybegynder
02. april 2003 - 16:45 Der er 5 kommentarer og
1 løsning

Insert into og og hent med det samme

Jeg vil gerne når jeg tilføjer en ny række i min tabel kunne hente den frem med det samme igen - jeg har et id felt med autonummerering - har set på et par eksempler her på eksperten, men har ikke kunnet få det til at virke.

<%
else
if Request("action") = "next" then

    Set DataConn = Server.CreateObject("ADODB.Connection")
    DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("../_private/produkt.mdb")
    DataConn.Open DSN
    Set rs = Server.CreateObject("ADODB.Recordset")

tegn_id = Request.cookies("id")
antal = Request("antal")
side11 = Request("1_1") & " "
side12 = Request("1_2") & " "
side13 = Request("1_3") & " "
side14 = Request("1_4") & " "
side15 = Request("1_5") & " "
side16 = Request("1_6") & " "
side21 = Request("2_1") & " "
side22 = Request("2_2") & " "
side23 = Request("2_3") & " "
side24 = Request("2_4") & " "
side25 = Request("2_5") & " "
side26 = Request("2_6") & " "

SQL = "INSERT INTO tegnorder (tegn_id, antal, 11, 12, 13, 14, 15, 16, 21, 22, 23, 24, 25, 26) "
SQL = SQL & "VALUES ('" & tegn_id & "','" & antal & "','" & side11 & "','" & side12 & "','" & side13 & "','" & side14 & "','" & side15 & "','" & side16 & "','" & side21 & "','" & side22 & "','" & side23 & "','" & side24 & "','" & side25 & "','" & side26 & "');"

    DataConn.Execute(SQL)

  'response.redirect ("betaling.asp")
end if
end if%>
Avatar billede eagleeye Praktikant
02. april 2003 - 16:55 #1
Det er ikke tilladt at kolonne nanve som tal 11, 12 osv, men det kan let omgåes ved at sætte [] omkring navnet/tallet [11], [12]

SQL = "INSERT INTO tegnorder (tegn_id, antal, [11], [12], [13], [14], [15], [16], [21], [22], [23], [24], [25], [26]) "


Hvis eks vis tegn_id og antal er defineret som tal i databasen så skal der ikke ' omking. Der skal kun ' omkring data hvis kolonnen er definerete som tekst/notat.

SQL = SQL & "VALUES (" & tegn_id & ", " & antal & ",'"
Avatar billede hhlundgaard Nybegynder
02. april 2003 - 17:01 #2
Jeg har ingen problemer med at indsætte rækkerne på trods af "tal" navnene, det eneste problem jeg har er at skulle kunne trække den række jeg sætter ind - ud med det samme - altså hente ID'en på den række som lige er oprettet.
Avatar billede eagleeye Praktikant
02. april 2003 - 17:12 #3
Ok..
Hvis du vil havde ID med det samme skal du nok lave det med et recordset..:

set rs = Server.CreateObject("ADODB.RecordSet")
rs.Open "SELECT * FROM tegnorder WHERE nanvet_på_autonummer_kolonne = 0", DataConn, 1, 3
rs.AddNew
rs("tegn_id") = tegn_id
rs("antal") = antal
rs("11") = side11
rs("12") = side12
..
..
rsUpdate
nytid = rs("nanvet_på_autonummer_kolonne")
Avatar billede hhlundgaard Nybegynder
02. april 2003 - 17:18 #4
hmm, samme løsning som jeg har prøvet men denne her gang virker det!
Det er jo nok derfor du har så mange point som du har.
og her er flere.
Avatar billede hhlundgaard Nybegynder
02. april 2003 - 17:19 #5
Forresten når man laver det med recordset er det så ikke også sikret imod hvis 2 personer kører det på samme tid?
Avatar billede eagleeye Praktikant
02. april 2003 - 17:24 #6
Ja det skulle være sikret i databasen, så to brugere som loader siden på samme tid ikke får samme ID.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester