Just nu i M3-nätverket
Gå till innehåll

Vad gör jag för fel ?


Apnorix

Rekommendera Poster

Kan någon läsa vad jag har missat?

 

:

 

<%

if Session("userok") <> "1" then

response.redirect "default.asp?fel=ja"

end if

 

%>

 

<html>

<head>

<title>GM Direktkommunikation - PPR</title>

</head>

<body>

 

 

<%

 

Set MinCon = Server.CreateObject ("ADODB.Connection")

Set rs = Server.CreateObject ("ADODB.Recordset")

 

MinCon.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("..\..\_private\personuppgift.mdb")&";"

 

 

 

SQL = "SELECT * from person anstnr='" & Request.Form("anstnr")(kontroll) & "'"

rs.Open SQL, MinCon, 1, 2

if rs.EOF then

rs.close

 

 

SQL = "SELECT * from person where 1=2"

rs.Open SQL, MinCon, 1, 2

 

rs.AddNew

rs("anstnr") = Request.Form("anstnr")

rs("enhet") = Session("enhet")

rs("pass") = Request.Form("pass")

rs("fornamn") = Request.Form("fornamn")

rs("efternamn") = Request.Form("efternamn")

rs("epost") = Request.Form("epost")

rs("mobil") = Request.Form("mobil")

rs("aktiv") = Request.Form("aktiv")

 

 

 

 

 

rs.Update

rs.Close

response.redirekt "main.asp"

end if

 

 

else

 

rs.Close

 

 

response.redirect "person.asp"

end if

 

 

%>

</body>

</html>

 

/Markus

 

Länk till kommentar
Dela på andra webbplatser

vad får du för fel?

 

SQL = "SELECT * from person where 1=2" 

ser konstigt ut. Har du en kolumn som heter 1 ?

 

Länk till kommentar
Dela på andra webbplatser

Nej.

 

 

Man skriver:

SQL = "SELECT * from person where 1=2"

 

När man vill öppna alla fält i ingen post.

 

 

 

 

Länk till kommentar
Dela på andra webbplatser

Till denns sida skickar jag ett antal variabler:

anstnr, enhet, pass, mobil, status, email, mobil, fornamn, efternamn.

 

Dessa skall skrivas in i databasen med villkoret att anställningsnummret inte redan finns.

 

Där av min första sql-öppning, med villkoret:

 

SQL = "SELECT * from person anstnr='" & Request.Form("anstnr")(kontroll) & "'"

 

och om det inte finns mao EOF så skall han gå vidare och öppna alla fält i ingen post för att registrera en ny post annas inte.

 

Länk till kommentar
Dela på andra webbplatser

Varför gör du så?

Jag brukar bara göra en "Select * From person" för att öppna recordsetet.

 

Du får ju en ny post med rs.Addnew

 

/Mikke

----------------------------------------------

- Vah! Denuone Latine loquebar? Me ineptum. Interdum modo elabitur.

(Hoppsan! Pratade jag latin nu igen? Tokigt. Ibland så bara slinker det ur mig.)

 

Länk till kommentar
Dela på andra webbplatser

Bara vad jag lärt mig... Boken "ASP av Erik Ronne".

 

... men det fungerar ändå inte, jag prövade med vad du skrev.

 

Jag får följande meddelande:

Sidan kan inte visas

Ett problem uppstod med sidan du försöker nå och den kan inte visas.

 

--------------------------------------------------------------------------------

 

Försök med något av följande:

 

Öppna startsidan för www.gm-direktkom.com och sök efter länkar till den information du vill ha.

Klicka på knappen Uppdatera eller försök igen senare.

 

Klicka på Sök om du vill leta efter information på Internet.

Du kan även se en lista över relaterade platser.

 

 

 

 

HTTP 500 - Internt serverfel

Internet Explorer

 

 

----- Den känner vi alla igen :-)

 

/Markus

 

Länk till kommentar
Dela på andra webbplatser

Du kan inte köra Response.Redirect efter att ha skickat HTML till klienten. Eftersom du kör Response.Redirect till olika sidor beroende på vad som händer så verkar HTML-en helt onödig på denna sida.

 

Bättre sätt att lägga in data är att köra en INSERT-sats.

 

Request.Form("anstnr")(kontroll) ser konstigt ut, jag tror det ska vara bara Request.Form("anstnr").

 

<%
if Session("userok") <> "1" then
response.redirect "default.asp?fel=ja"
end if
Set MinCon = Server.CreateObject ("ADODB.Connection")
Set rs = Server.CreateObject ("ADODB.Recordset")

MinCon.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("..\..\_private\personuppgift.mdb")&";"

SQL = "SELECT * from person anstnr='" & Request.Form("anstnr") & "'" 
rs.Open SQL, MinCon, 1, 2
If rs.EOF Then
rs.Close
MinCon.Close
Response.Redirect("person.asp")
Else
rs.Close
SQL = "INSERT INTO person(anstnr, enhet, pass, fornamn, efternamn, epost, mobil, aktiv) VALUES('" & Request.Form("anstnr") & "', '" & Session("enhet") & "', '" & [...] & "');"
MinCon.Execute(SQL)
MinCon.Close
Response.Redirect("main.asp")
End If
%>

 

mvh

Olle

 

Länk till kommentar
Dela på andra webbplatser

Hej igen och tack för din hjälp.

 

Dessvärre så fungerade inte din kod heller.

 

"internt serverfel"

 

- Kan det vara att vi inte stänger databasen ordentligt?

 

/Markus

 

Länk till kommentar
Dela på andra webbplatser

Min kod går inte att Copy-Pastea rakt av...

 

Slå på att visa riktiga felmeddelanden i IIS:en och Internet Explorer så du får reda på vilket fel som uppstått och på vilken rad.

 

mvh

Olle

 

EDIT: du bör kommentera bort Response.Redirect-raderna så att du stannar kvar på sidan för att lättare kunna felsöka.

[inlägget ändrat 2003-08-11 14:41:27 av Olle Nyrén]

Länk till kommentar
Dela på andra webbplatser

Hittar dessvärre inget som säger IIS där, men... Normalt så får jag fram felmeddelanden om vilken rad det är fel på, men inte i detta fallet.

 

- Förmodligen är det ett skit fel !! :-(

 

Suttit med det här nu i 4 timmar !!!!!!! - Börjar bli smått förbannad

 

Du vet hur det är !

 

 

/

 

Markus

 

Länk till kommentar
Dela på andra webbplatser

det heter inget med IIS heller. Det står något med "visa riktiga felmeddelanden" eller liknande. Har inte IE här just nu så jag kan inte kolla

 

Länk till kommentar
Dela på andra webbplatser

Verktyg -> Internetalternativ -> Fliken "Avancerat" -> Visa egna HTTP-felmeddelanden (långt ner på sidan, tredje från slutet i min svenska IE6)

 

Ciao,

Anders

 

Länk till kommentar
Dela på andra webbplatser

Den är redan för-bockad.

 

Det är ju inte mitt stora dilemma, dessvärre !

 

Jag får inte min kod att fungera !

 

- Är det du Nygren ?

 

Länk till kommentar
Dela på andra webbplatser

Nu ser min kod ut så här:

 

------------------

<%

if Session("userok") <> "1" then

response.redirect "default.asp?fel=ja"

end if

 

 

 

Set MinCon = Server.CreateObject ("ADODB.Connection")

Set rs = Server.CreateObject ("ADODB.Recordset")

 

MinCon.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("..\..\_private\personuppgift.mdb")&";"

 

 

 

SQL = "SELECT * from person anstnr='" & Request.Form("anstnr") & "'"

rs.Open SQL, MinCon, 1, 2

if rs.EOF then

rs.Close

 

SQL = "INSERT INTO person(anstnr,enhet,pass,fornamn,efternamn,epost,mobil) VALUES('" & Request.Form("anstnr") & "', '" & Session("enhet") & "','" & Request.Form("pass") & "','" & Request.Form("fornamn") & "','" & Request.Form("efternamn") & "','" & Request.Form("epost") & "','" & Request.Form("mobil") & "'"

MinCon.Execute(SQL)

MinCon.Close

Response.Redirect("main.asp")

 

Else

rs.close

MinCon.Close

Response.redirect("person.asp")

 

End if

 

 

%>

--------------------

 

Jag får felmeddelande att det är internt serverfel !

 

Det är det inte ! andra sidor fungerar !

 

Tacksam för hjälp

 

 

/

 

Markus

 

Länk till kommentar
Dela på andra webbplatser

Den inställningen ovan ska INTE vara förbockad. Då får du se det "riktiga" felmeddelandet från servern, istället för bara "Internt serverfel".

 

Ciao,

Anders

 

Länk till kommentar
Dela på andra webbplatser

Det är lättare om du skriver ut felmeddelandet.

 

- Magnus

-----------------------------------------------------

Ropen skalla, BBB (eller BOSTREAM) åt alla!!!

 

Länk till kommentar
Dela på andra webbplatser

Internet Explorer är default inställt på att visa "vänliga" felmeddelanden, du kan ändra dessa så här:

Tools/Internet Options/Advanced/Under Browsing bockar du ur Show Friendly HTTP Error.

Jag kör med engelska som du ser, men du luskar säkert ut det även om du kör med svensk version.

 

Då får du iaf upp lite mer detaljerat vad som är fel. Sedan kan du ju posta meddelande igen och säga vad som står.

 

Länk till kommentar
Dela på andra webbplatser

Nu har jag följande felmeddelande :

--------------------------

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

 

[Microsoft][ODBC Microsoft Access Driver] Syntax error in FROM clause.

 

/ppr/personnysp.asp, line 16

 

----------------------------

 

Det är följande mittersta rad:

 

--------------------------

SQL = "SELECT * from person anstnr='" & Request.Form("anstnr") & "'"

 

rs.Open SQL, MinCon, 1, 2

 

if rs.EOF then

_________________________-

 

 

Vad är det för fel på den ?

Jag tog med raden ovenför och under för man vet ju inte hur exploren räknar !

 

/Markus

 

 

Länk till kommentar
Dela på andra webbplatser

Du har inget "WHERE" mellan tabell-namnen och vilkoren, då blir det fel i FROM-delen precis som felmeddelandet säger.

 

Länk till kommentar
Dela på andra webbplatser

Tack för ditt inlägg.

 

Efter din justering får jag följande felmeddelande:

----------------------

Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

 

[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.

 

/ppr/personnysp.asp, line 16

----------------------------------

 

Har det något att göra med att variabeln anstnr är tal ?

 

/Markus

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...