Avatar billede ravnkilde Nybegynder
14. marts 2006 - 14:19 Der er 5 kommentarer og
1 løsning

Sessions - start en session med henblik på udtræk fra database

Hej!

Jeg har en formular, hvor brugerne indtaster data, som skrives ned i en database (Access), hvorefter brugeren dirigeres hen til en side, hvor han/hun kan printe sine indtastede oplysninger ind.

Min idé er at starte en session, når brugeren skriver data ned i databasen, hvorefter jeg på print-siden vil lave en SQL-forespørgsel i forhold til den pågældende session.

Session skal være "GameID" som er autonummerering i databasen.

Jeg har forsøgt at indsætte session-koden i nedenstående script, som skriver data ned i databasen, men den giver fejl (Object required: '') på line 37.

Nogen, der kan hjælpe med at lave den rigtige session-kode? På forhånd tak.

--- start på kode ---

<%@ Language="VBScript" %>
<% Option Explicit %>
<html>
<head>
<title>benchmark_insert.asp</title>
</head>
<body>
<%
'Definer variabler
Dim sConnString, connection, sSQL, strkols, strVals, i, rs

strkols = " Entry "
strVals = " Now() "
for i = 1 to 57
  if Request.Form("Q"&i) <> "" then
    strkols = strkols & ", Q" & i
    strvals = strvals & ", "  & Request.Form("Q"&i)
  end if
next
for i = 58 to 63
  if Request.Form("Q"&i) <> "" then
    strkols = strkols & ", Q" & i
    strvals = strvals & ", '"  & Request.Form("Q"&i) & "' "
  end if
next

sSQL = "insert into Games (" & strKols & ") values (" & strVals & ")"

'Udskriv SQL
'Response.Write sSQL

'Session start

sSQL = "Select GameID from Games"
Session.Timeout=5

set rs = connection.Execute(sSQL) --> LINE 37

Session("GameID") = rs("GameID")

'Definer connection string og database
sConnString="PROVIDER=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Server.MapPath("Database/2006.mdb")

'Lav ADO connection object
Set connection = Server.CreateObject("ADODB.Connection")

'Forbind til database
connection.Open(sConnString)

'Eksekver SQL
connection.execute(sSQL)

'Response.Write "Data skrevet til database!"
Response.Redirect "benchmark_print.asp"

'Luk connection
connection.Close
Set connection = Nothing

%>
</body>
</html>
Avatar billede fennec Nybegynder
14. marts 2006 - 14:42 #1
Du kan ikke hente fra databasen inden du har oprettet en forbindelse:
<%@ Language="VBScript" %>
<% Option Explicit %>
<html>
<head>
<title>benchmark_insert.asp</title>
</head>
<body>
<%
'Definer variabler
Dim sConnString, connection, sSQL, strkols, strVals, i, rs

strkols = " Entry "
strVals = " Now() "
for i = 1 to 57
  if Request.Form("Q"&i) <> "" then
    strkols = strkols & ", Q" & i
    strvals = strvals & ", "  & Request.Form("Q"&i)
  end if
next
for i = 58 to 63
  if Request.Form("Q"&i) <> "" then
    strkols = strkols & ", Q" & i
    strvals = strvals & ", '"  & Request.Form("Q"&i) & "' "
  end if
next

sSQL = "insert into Games (" & strKols & ") values (" & strVals & ")"

'Udskriv SQL
'Response.Write sSQL

'Session start


'Definer connection string og database
sConnString="PROVIDER=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Server.MapPath("Database/2006.mdb")

'Lav ADO connection object
Set connection = Server.CreateObject("ADODB.Connection")

'Forbind til database
connection.Open(sConnString)

'Eksekver SQL
connection.execute(sSQL)

sSQL = "Select GameID from Games order by gameID desc"
Session.Timeout=5

set rs = connection.Execute(sSQL)

Session("GameID") = rs("GameID")

'Response.Write "Data skrevet til database!"
Response.Redirect "benchmark_print.asp"

'Luk connection
connection.Close
Set connection = Nothing

%>
</body>
</html>
Avatar billede fennec Nybegynder
14. marts 2006 - 14:45 #2
Du vil nok også fortrække at bruge @@IDENTITY i stedet, da den automatisk henter det ID der lige er indsat i stedet for "Select GameID from Games order by gameID desc":

set rs = connection.Execute("SELECT @@IDENTITY as thisID")
Session("GameID") = rs("thisID")
Avatar billede ravnkilde Nybegynder
14. marts 2006 - 15:02 #3
fennec: Nej, selvfølgelig! Det virker! Kan du også hjælpe mig med min SQL-forespørgsel på printsiden. Jeg er startet med

strSQL = "Select Q1, Q2, Q3, Q4 from Games where GameID=Session .....
Avatar billede fennec Nybegynder
14. marts 2006 - 15:05 #4
strSQL = "Select Q1, Q2, Q3, Q4 from Games where GameID="& Session("GameID")
Avatar billede fennec Nybegynder
14. marts 2006 - 15:06 #5
Glemte lige et svar...
.o) <-- One Eyed Jack
Avatar billede ravnkilde Nybegynder
14. marts 2006 - 15:19 #6
Super!
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