Avatar billede fastpoint Nybegynder
18. august 2002 - 22:10 Der er 14 kommentarer og
2 løsninger

INSERT INTO fejl

jeg prøver at få dette script til at indsætte det navn man nu indtaster ind i databasen...jeg får en dog en http 500 fejl.. hvad gør jeg forkert?

<%
If Trim(Request("name")) > "" Then
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath ("database.mdb")
 

Conn.Open DSN
if request("name") then
response.write("What Are You Doing?")
else
Conn.Execute "INSERT INTO bruger (name) VALUES ('" & Replace(Request("name"), "'", "''") & "')"
Conn.Close: Set Conn = Nothing

  Response.Write "<h1>Dit Navn Er Registreret!</h1>"
%>
Avatar billede fastpoint Nybegynder
18. august 2002 - 22:12 #1
retter lige noget selv..

if request("name") = ""  then
response.write("what are you doing?")
Avatar billede eagleeye Praktikant
18. august 2002 - 22:15 #2
Prøv at sætte [] omkring name jeg tror måske name er reserveret ord i SQL/Access:

Conn.Execute "INSERT INTO bruger ([name]) VALUES ('" & Replace(Request("name"), "'", "''") & "')"
Avatar billede fastpoint Nybegynder
18. august 2002 - 22:33 #3
sorry... fejlen var den jeg rettede og at jeg skulle have denne funktion for sig selv [sin egen asp fil]

men kan du hjælpe mig med denne fejl istedet?

ADODB.Recordset error '800a0cc1'

Item cannot be found in the collection corresponding to the requested name or ordinal.


jeg tror det er denne del den er gal med

<%Response.Write ""
if len(rs("name")) > 200 then
    response.write "" & left(rs("name"),200)& "..."
else
    response.write "" & rs("name") & ""
end if
  response.write "" %>
Avatar billede eagleeye Praktikant
18. august 2002 - 22:43 #4
Debetyder denne ikke kan finde kolonne navnet name i recordset rs.

Hvis du åbner RS med en SQL sætning som denne:

rs.Open "SELECT id FROM tabel", conn

Så kommer fjelen da kolonne name ikke er valgt i SELECT delen.
Avatar billede fastpoint Nybegynder
18. august 2002 - 22:45 #5
den ser sådan ud

strSQL = "select * from bruger ORDER BY dato DESC"

hvordan skal jeg ellers lave den?
Avatar billede medions Nybegynder
18. august 2002 - 22:49 #6
Hmm pårøv lgie med denne:

<%
If Trim(Request("name")) > "" Then
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath ("database.mdb")
 

Conn.Open DSN
if request("name") then
response.write("What Are You Doing?")
else
Conn.Execute "INSERT INTO bruger (name) VALUES ('" & Replace(Request("name"), "'", "''") & "')"
Conn.Close
Set Conn = Nothing

  Response.Write "<h1>Dit Navn Er Registreret!</h1>"
%>

//>Rune
Avatar billede fastpoint Nybegynder
18. august 2002 - 22:51 #7
medions:

Det problem er blevet fixet... du kan kigge på det nye problem som jeg har skrevet efterfølgende
Avatar billede eagleeye Praktikant
18. august 2002 - 22:58 #8
Den kommer ikke med et linie nummer?
Avatar billede eagleeye Praktikant
18. august 2002 - 22:59 #9
Prøv at tjekke alle steder i koden hvor du bruger

rs("kolonnenavn") og tjek det findes i databasen.
Avatar billede fastpoint Nybegynder
18. august 2002 - 23:06 #10
denne del af scriptet skal for resten bare udskrive hvad der står i name [den findes i database] på en side... det eneste sted der står rsname er i denne del

<%Response.Write ""
if len(rs("name")) > 200 then
    response.write "" & left(rs("name"),200)& "..."
else
    response.write "" & rs("name") & ""
end if
  response.write "" %>


men jeg har også dette i mit script

<%
intPage = Request("page")
If isNumeric(intPage) = False Or intPage < 1 Then
    intPage = 1
End If

Set rs = Server.CreateObject("ADODB.RecordSet")
strSQL = "select * from bruger ORDER BY dato DESC"
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("database.mdb")
rs.Open strSQL, strDSN, 1
If Not (rs.BOF Or rs.EOF) Then
    rs.PageSize = 40
    rs.AbsolutePage = intPage
    intRecCount = rs.PageSize
    intPageCount = rs.PageCount
    Do While Not rs.EOF And intRecCount > 0
    %>
Avatar billede fastpoint Nybegynder
18. august 2002 - 23:06 #11
det er ok der der skal rettes et eller andet eller sættes noget til
Avatar billede medions Nybegynder
18. august 2002 - 23:07 #12
<%

Set rs = Server.CreateObject("ADODB.RecordSet")
strSQL = "select * from bruger ORDER BY dato DESC"
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("database.mdb")
rs.Open strSQL, strDSN, 1
If Not (rs.BOF Or rs.EOF) Then
    rs.PageSize = 40
    rs.AbsolutePage = intPage
    intRecCount = rs.PageSize
    intPageCount = rs.PageCount
    Do While Not rs.EOF And intRecCount > 0

Response.Write ""
if len(rs("name")) > 200 then
    response.write "" & left(rs("name"),200)& "..."
else
    response.write "" & rs("name") & ""
end if
  response.write "" %>


men jeg har også dette i mit script

<%
intPage = Request("page")
If isNumeric(intPage) = False Or intPage < 1 Then
    intPage = 1
End If
    %>

Du kan jo ikke bruge dit record inden det er blevet oprettet!

//>Rune
Avatar billede medions Nybegynder
18. august 2002 - 23:09 #13
Du prøver at hente dit recordset inden det er blevet oprettet!
fx. skriver du:
If Len(rs("name")) ...

inden du har skrevet

rs.Open strSQL, strDSN, 1

Det skal være lige modsat ;o)

//>Rune
Avatar billede fastpoint Nybegynder
18. august 2002 - 23:11 #14
hmm 

Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.

Name er af datatypen "memo" kan det være problemet`?
Avatar billede fastpoint Nybegynder
18. august 2002 - 23:15 #15
Det gør ikke noget... jeg har sat funktionen ind i et andet script... nu virker det.

I får nogen point hver.
Avatar billede medions Nybegynder
18. august 2002 - 23:20 #16
Fair nok...
Thx 4 Poinz

//>Rune
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