webForumDet fria alternativet

Fel i kod?

ASP

9 svar · 377 visningar · startad av nybörjare

Medlem sedan nov. 200178 inlägg
Frågan#1

Hejsan alla Asp knopare...

När ja kör denna koden:

  <% 
' variabler
if Request.QueryString("logga") = "in"  then 
namn = Request.Form("namn") 
los  = Request.Form("los") 
databas = Server.MapPath("um.mdb") 

' öppnar databasen 
Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& databas 

' Öppnar Tabellen 
Set RecSet = Server.CreateObject("ADODB.Recordset") 
SQL = "SELECT * FROM logga WHERE namn = '"& namn &"' and los = '" & los & "'"

RecSet.Open SQL, Connect, adOpenStatic, adLockOptimistic 

If RecSet.EOF then
response.write "Fel Användar namn lr Lösenord, försök igen"

Else 
Session("anv")       = RecSet("namn")
Session("inloggad")  = "ja"
End if

RecSet.Update 
RecSet.Close 
Connect.Close 

%> 
</font><font size="-2" face="Verdana, Arial, Helvetica, sans-serif"> Du är nu 
  inloggad du kan nu gå vidare... </font> 
<%End If%>

Så får ja fel mess:

Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.
logga.asp, line 31

vad kan vara fel?

Ps rad 31 är:
RecSet.Open SQL, Connect, adOpenStatic, adLockOptimistic

Medlem sedan juni 200032 967 inlägg
#2

Vad har du för datatyper på dina fält i tabellen?

Medlem sedan mars 20002 836 inlägg
#3

Du kör en update fast du har inte specifierat vad som ska läggas in och i vilka fält datan ska läggas till i så du kan ta bort RecSet.Update

cya,
PatrikB

Medlem sedan nov. 20018 492 inlägg
#4

Prova med denna kod.

  <% 
If Request.QueryString("logga") = "in" Then 
namn = Trim(Request.Form("namn"))
los  = Trim(Request.Form("los"))
databas = Server.MapPath("um.mdb") 

Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& databas 

Set RecSet = Connect.Execute("SELECT namn, los FROM logga WHERE namn = '" & namn & "' AND los = '" & los & "'")

If RecSet.EOF Then
Response.Write"Fel användarnamn eller lösenord!"
Else
Session("anv") = RecSet("namn")
Session("inloggad") = "ja"
Response.Write"Du är ni inloggad och kan gå vidare!<br><a href=sida.asp>Vidare</a>"
End If
RecSet Close
Set RecSet = Nothing
Connect.Close
Set Connect = Nothing
%>

Förresten, varför hade du en RecSet.Update i din kod?

/Mika3l

Medlem sedan nov. 200178 inlägg
#5

Thx

Thx @nders...
Det var det som var fel hade glömt att ändra det...

Medlem sedan nov. 200178 inlägg
#6

En annan fråga

Kan man öppna två tabeller samtidigt ???

Typ:
Addera = "Select * From um and logga"

För när ja kör det får ja fel mess...
Mvh

Medlem sedan aug. 20011 099 inlägg
#7

Addera = "Select * From um, logga DESC"

Medlem sedan juni 200032 967 inlägg
#8

Visst kan du, men du får ut en herrans massa irrelevant data om du inte har något joinvillkor.

exempel:

SELECT * FROM tbl1, tbl2 WHERE tbl1.id = tbl2.parentid ORDER BY tbl1.id

Mvh,

Medlem sedan nov. 200178 inlägg
#9

En fråga till nu :r

 <% 
' variabler
if Request.QueryString("logga") = "in"  then 
namn = Request.Form("namn") 
los  = Request.Form("los") 
databas = Server.MapPath("um.mdb") 

' öppnar databasen 
Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& databas 

' Öppnar Tabellen 
Set RecSet = Server.CreateObject("ADODB.Recordset") 
SQL = "SELECT * FROM logga WHERE namn = '"& namn &"' and los = '" & los & "'"

RecSet.Open SQL, Connect, adOpenStatic, adLockOptimistic 

If RecSet.EOF then
response.write "Fel Användar namn lr Lösenord, försök igen"

Else 
Session("anv")       = RecSet("namn")
Session("inloggad")  = "ja"

fldcount = RecSet("antal") + 1
RecSet("antal") = fldcount
 
End if

RecSet.Update 
RecSet.Close 
Connect.Close  
%>

När ja kör denna koden funkar det bra (eller nästan) för
Om ja kör

If RecSet.EOF then
response.write "Fel Användar namn lr Lösenord, försök igen"

Så ska juh ej


Else 
Session("anv")       = RecSet("namn")
Session("inloggad")  = "ja"

fldcount = RecSet("antal") + 1
RecSet("antal") = fldcount
 
End if

köras om inte Det ä fel lösen eller Anv men om ja skriver fel och ska få fram "fel lösen bla bla" så blir det så här i stället:

ADODB.Recordset (0x800A0BCD)
Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.
/logga.asp, line 46

Och det är för att ja försöker uppdatera en post väll? men den ska juh bara försöka uppdatera om ja har skrevit rätt adress eller ja har missat något?

Fortsatt trevlig Fredag :birp

Medlem sedan mars 20015 287 inlägg
#10

Flytta in din RecSet.Update innan End If annars körs den ju i vilket fall som helst.

285 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
153 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)