TTobbsterMedlem sedan mars 2001309 inlägg Borde det inte gå att göra så här för att slippa felmeddelandet att primärnyckelposten redan finns i data basen (Användarnamn) När en ny medlem försöker registrera sig med redan bifintligt användar namn ?
<%
Set linCon=Server.CreateObject("ADODB.Connection")
Set rs=Server.CreateObject("ADODB.Recordset")
linCon.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& Server.MapPath("\tomalu\db\tomalu.mdb")
SQL="SELECT Anvandarnamn FROM medlem "
rs.Open SQL,MinCon,1,2
Do until rs.EOF
if rs("Anvandarnamn")=Request.Form("anvnamn")
Then response.redirect"fel.asp"
Else
Loop
Set MinCon=Server.CreateObject("ADODB.Connection")
Set rs=Server.CreateObject("ADODB.Recordset")
MinCon.Open "driver={Microsoft Access Driver (\*.mdb)};dbq="& Server.MapPath("\\tomalu\\db\\tomalu.mdb")
SQL="SELECT \* FROM medlem WHERE 1=2"
rs.Open SQL,MinCon,1,2
rs.AddNew
rs("Anvandarnamn")=Request.Form("anvnamn")
rs("Fnamn")=Request.Form("fnamn")
rs("Enamn")=Request.Form("enamn")
rs("Email")=Request.Form("email")
rs("Persnr")=Request.Form("persnr")
rs("Startsida")=Request.Form("Startsida")
rs.Update
rs.close
%>
<%MinCon.close%>
TTobbsterMedlem sedan mars 2001309 inlägg Jag har ändrat koden lite och tycker det borde funka så här men inte ....Vad är det för fel på mig
<%
Set linCon=Server.CreateObject("ADODB.Connection")
Set rs=Server.CreateObject("ADODB.Recordset")
linCon.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& Server.MapPath("\tomalu\db\tomalu.mdb")
SQL="SELECT Anvandarnamn FROM medlem "
rs.Open SQL,MinCon,1,2
Do While Not rs.EOF
if rs("Anvandarnamn")=Request.Form("anvnamn") Then
response.redirect"fel.asp"
Else
rs.MoveNext
Loop
%>
<%
Set MinCon=Server.CreateObject("ADODB.Connection")
Set rs=Server.CreateObject("ADODB.Recordset")
MinCon.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& Server.MapPath("\tomalu\db\tomalu.mdb")
SQL="SELECT * FROM medlem WHERE 1=2"
rs.Open SQL,MinCon,1,2
rs.AddNew
rs("Anvandarnamn")=Request.Form("anvnamn")
rs("Fnamn")=Request.Form("fnamn")
rs("Enamn")=Request.Form("enamn")
rs("Email")=Request.Form("email")
rs("Persnr")=Request.Form("persnr")
rs("Startsida")=Request.Form("Startsida")
rs.Update
rs.close
%>
<%MinCon.close%>
------------------
Plikten framför Allt......
[Redigerat av Tobbster den 04 maj 2001]
ToonsterMedlem sedan feb. 20001 590 inläggDu behöver inte loopa igenom för att kolla.
Sen behöver du inte använda recordset heller.
gör något liknande detta:
SQL="SELECT Anvandarnamn FROM medlem WHERE Anvandarnamn="&Request.Form("anvnamn")
Set MinCon=Server.CreateObject("ADODB.Connection")
sqlstring= "driver={Microsoft Access Driver (*.mdb)};dbq="& Server.MapPath("\tomalu\db\tomalu.mdb")
MinCon.Open sqlstring
SET RS = MinCon.Execute(sqlstring)
if rs.EOF then
'fanns inte
else
'fanns
end if
RS.Close
MinCon.Close
/T
------------------
This is what the KLF is about
TTobbsterMedlem sedan mars 2001309 inlägg Nu har jag ändrat och gjort så här men det funkar INTE ändå......
<%
Set linCon=Server.CreateObject("ADODB.Connection")
sqlstring= "driver={Microsoft Access Driver (*.mdb)};dbq="& Server.MapPath("\tomalu\db\tomalu.mdb")
linCon.Open sqlstring
SET RS = linCon.Execute(sqlstring)
if rs.EOF then
Set MinCon=Server.CreateObject("ADODB.Connection")
Set rs=Server.CreateObject("ADODB.Recordset")
MinCon.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& Server.MapPath("\tomalu\db\tomalu.mdb")
SQL="SELECT * FROM medlem WHERE 1=2"
rs.Open SQL,MinCon,1,2
rs.AddNew
rs("Anvandarnamn")=Request.Form("anvnamn")
rs("Fnamn")=Request.Form("fnamn")
rs("Enamn")=Request.Form("enamn")
rs("Email")=Request.Form("email")
rs("Persnr")=Request.Form("persnr")
rs("Startsida")=Request.Form("Startsida")
rs.Update
rs.close
MinCon.close
else
response.redirect"main.asp"
end if
RS.Close
linCon.Close
%>
------------------
Plikten framför Allt......
TTobbsterMedlem sedan mars 2001309 inlägg Jag får det här felmeddelandet..
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Drivrutin för ODBC Microsoft Access] Ogiltigt SQL-uttryck. 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT' eller 'UPDATE' förväntades.
/tomalu/reg.asp, line 12
------------------
Plikten framför Allt......
LLarsGMedlem sedan dec. 200012 464 inlägg Det blev visst lite sammanblandning mellan sqlsatser och connectionsträngen i förra exemplet.
<%
Set linCon=Server.CreateObject("ADODB.Connection")
connstring= "driver={Microsoft Access Driver (*.mdb)};dbq="& Server.MapPath("\tomalu\db\tomalu.mdb")
linCon.Open connstring
sql = "select 1 from medlem " & _
" WHERE Anvandarnamn = '" &_
Request.Form("anvnamn") & "'"
set rs = linCon.Execute(sql)
if rs.EOF then
found = true
sql = "insert into medlem(anvnamn, " &_
"fnamn,enamn,email,persnr," &_
"startsida) " &_
" values ('" & _
Request.Form("anvnamn") & "','" & _
Request.Form("fnamn") & "','" & _
Request.Form("enamn") & "','" & _
Request.Form("email") & "','" & _
Request.Form("persnr") & "','" & _
Request.Form("Startsida") & "')"
lincon.execute sql,,128
else
found = true
end if
RS.Close
set rs = nothing
linCon.Close
set lincon = nothing
if found then
response.redirect "main.asp"
end if
%>
Nu förutsätter jag att alla kolumner i tabellen medlem är av typen char/varchar.
------------------
essentitia preter non sans multiplicandum
TTobbsterMedlem sedan mars 2001309 inlägg Nu får jag istället det här feltyps meddelandet !
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][Drivrutin för ODBC Microsoft Access] För få parametrar angavs. 1 förväntades.
/tomalu/reg.asp, line 11
Jag använder koden jag fick av LarsG(Tack föresten) men ändrade Sqlfrågan till : SQL="SELECT * FROM medlem WHERE Anvandarnamn="&Request.Form("anvnamn")
Annars är koden exakt ....Snälla hjäl
Börjar tröttna på det här problemet snart :OO
------------------
Plikten framför Allt......
LLarsGMedlem sedan dec. 200012 464 inlägg Vilken sqlsats är det som utförs på rad 11. Du kan ju lägga ut en testutskrift av strängen innan du gör execute för att se om det är ok.
Varför ändrade du i select-satsen? Om inte anvandarnamn är numeriskt så behövs apostroferna. Det fel som du får är något man ofta får om man man inte har med apostrofer eller om Request.Form("anvnamn") är tomt.
------------------
essentitia preter non sans multiplicandum
TTobbsterMedlem sedan mars 2001309 inlägg Det har ordnat sig...bara jag låter bli att ändra kod som personer som kan det här har skrivit...Tack för allt.......
Frågan är vad vi amatörer skulle göra utan er ?
------------------
Plikten framför Allt......