<!-- #include file="./gaaah.inc" -->
<html>
<head>
<title>Uppdatering av uppgifter</title>
</head>
<body bgcolor="white">
<%
Response.Expires = -1000
Response.Addheader "Pragma", "no-cache"
%>
<%
Dim mobil
mobil=request.form("mob")
Dim Info
info=request.form("info")
Dim id
id=request.querystring("id")
Dim faxnr
faxnr=request.form("fax")
Dim epostpriv
epostpriv=request.form("Epostpriv")
Dim tfnhem
tfnhem=request.form("tfnhem")
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open connString
Strsql="select * from Vytelpersoninfo where PersonID = '"&id&"' "
Set rs = Conn.execute (Strsql)
SQL1="update Vytelpersoninfo set info='"&info&"' where PersonID = '"&id&"'"
Do while not rs("typk")="TfnMobil"
rs.movenext
loop
if rs("typk")="TfnMobil" then
SQL= "update Vytelpersoninfo set Kontakt='"&mobil&"' where PersonID = '"&id&"' and typk='TfnMobil'"
else
SQL="insert into tbltelpersonkontakt(personid,kontakttyp,kontakt) values('"&id&"','2','"&mobil&"')"
end if
rs.movefirst
[b]Do while not rs("typk")="Fax"[/b]
rs.movenext
loop
if rs("typk")="Fax" then
SQL2= "update Vytelpersoninfo set Kontakt='"&faxnr&"' where PersonID = '"&id&"' and typk='Fax'"
else
SQL2="insert into tbltelpersonkontakt(personid,kontakttyp,kontakt) values('"&id&"','7','"&faxnr&"')"
end if
rs.movefirst
do while not rs("typk")="EpostPrivat"
rs.movenext
loop
if rs("typk")="EpostPrivat" then
SQL3="update Vytelpersoninfo set Kontakt='"&epostpriv&"' where PersonID = '"&id&"' and typk='EpostPrivat'"
else
SQL3="insert into tbltelpersonkontakt(personid,kontakttyp,kontakt) values('"&id&"','5','"&epostpriv&"')"
end if
rs.movefirst
do while not rs("typk")="TfnHem"
rs.movenext
loop
if rs("typk")="TfnHem" then
SQL4="update Vytelpersoninfo set Kontakt='"&tfnhem&"' where PersonID = '"&id&"' and typk='TfnHem'"
else
SQL4="insert into tbltelpersonkontakt(personid,kontakttyp,kontakt) values('"&id&"','6','"&tfnhem&"')"
end if
%>
<%
conn.execute(SQL)
conn.execute(SQL1)
conn.execute(SQL2)
conn.execute(SQL3)
conn.execute(SQL4)
%>
<%
response.redirect "info_person.asp?id="&id&""
%>
</body>
</html>
Får felmedelandet......
Error Type:
(0x80020009)
Exception occurred.
/adress/nytele/update.asp, line 61
Det feta är rad 61.....
------------------
Är man medlem på WF så behöver man inga vänner !
Varför du får fel vet jag inte, men det är några problem med din kod.
Set rs = Conn.execute (Strsql)
innebär att recordsetet blir forwardonly, dvs du kan inte använda movefirst. I så fall måste du använda open med en dynamisk eller keyset cursor.
Do while not rs("typk")="TfnMobil"
rs.movenext
loop
if rs("typk")="TfnMobil" then
Här kontrollerar du aldrig om du EOF blir sant.
Do while not rs.eof
if ("typk")="TfnMobil" then exit do
rs.movenext
loop
if rs.eof then
sql = "insert"
else
sql = "update"
end if
I och för sig så borde det gå att skriva om koden så att du bara behöver traversera recordsetet en gång
sql1 = ""
sql2 = ""
'osv
sql5 = ""
while not rs.eof
if rs("typk") = "tfnMobil" then
sql1 = "update ..."
elseif rs("typk") = "fax" then
sql2 = "update ..."
'osv
end if
rs.movenext
wend
if sql1 = "" then
sql1 = "insert ..."
end if
if sql2 = "" then
sql2 = "insert ..."
end if
'osv
------------------ essentitia preter non sans multiplicandum
Nu har jag ändrat lite efter att Lars G en engång givit meg en Lektion i ASP-konsten,Men jag får det inte att funka... ändå
<!-- #include file="./gaaah.inc" -->
<html>
<head>
<title>Uppdatering av uppgifter</title>
</head>
<body bgcolor="white">
<%
Response.Expires = -1000
Response.Addheader "Pragma", "no-cache"
%>
<%
Dim mobil
mobil=request.form("mob")
Dim Info
info=request.form("info")
Dim id
id=request.querystring("id")
Dim faxnr
faxnr=request.form("fax")
Dim epostpriv
epostpriv=request.form("Epostpriv")
Dim tfnhem
tfnhem=request.form("tfnhem")
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open connString
Strsql="select * from Vytelpersoninfo where PersonID = '"&id&"'"
[b] rs.Open Strsql,Conn,1,2[/b]
SQL1="update Vytelpersoninfo set info='"&info&"' where PersonID = '"&id&"'"
rs.movefirst
Do while not rs.eof
if rs("typk")="TfnMobil" then
exit do
end if
rs.movenext
loop
if rs.eof then
SQL="insert into tbltelpersonkontakt(personid,kontakttyp,kontakt) values('"&id&"','2','"&mobil&"')"
else
SQL= "update Vytelpersoninfo set Kontakt='"&mobil&"' where PersonID = '"&id&"' and typk='TfnMobil'"
end if
rs.movefirst
Do while not rs.eof
if rs("typk")="Fax" then
exit do
end if
rs.movenext
loop
if rs.eof then
SQL2="insert into tbltelpersonkontakt(personid,kontakttyp,kontakt) values('"&id&"','7','"&faxnr&"')"
else
SQL2= "update Vytelpersoninfo set Kontakt='"&faxnr&"' where PersonID = '"&id&"' and typk='Fax'"
end if
rs.movefirst
Do while not rs.eof
if rs("typk")="EpostPrivat" then
exit do
end if
rs.movenext
loop
if rs.eof then
SQL3="insert into tbltelpersonkontakt(personid,kontakttyp,kontakt) values('"&id&"','5','"&epostpriv&"')"
else
SQL3="update Vytelpersoninfo set Kontakt='"&epostpriv&"' where PersonID = '"&id&"' and typk='EpostPrivat'"
end if
rs.movefirst
Do while not rs.eof
if rs("typk")="TfnHem" then
exit do
end if
rs.movenext
loop
if rs.eof then
SQL4="insert into tbltelpersonkontakt(personid,kontakttyp,kontakt) values('"&id&"','6','"&tfnhem&"')"
else
SQL4="update Vytelpersoninfo set Kontakt='"&tfnhem&"' where PersonID = '"&id&"' and typk='TfnHem'"
end if
%>
<%
conn.execute(SQL)
conn.execute(SQL1)
conn.execute(SQL2)
conn.execute(SQL3)
conn.execute(SQL4)
%>
<%
response.redirect "info_person.asp?id="&id&""
%>
</body>
</html>
Felmedelandet lyder...
Error Type:
Microsoft VBScript runtime (0x800A01A8)
Object required: ''
/adress/nytele/update.asp, line 35
Det har väl med cursor och lock type att göra förmodar jag.....
------------------
Är man medlem på WF så behöver man inga vänner !
innebär att recordsetet blir forwardonly, dvs du kan inte använda movefirst. I så fall måste du använda open med en dynamisk eller keyset cursor.
Nej! :-) Detta fungerar.
SQL = "SELECT * FROM [job]"
set mySQL = Conn.Execute(SQL)
DO UNTIL mySQL.EOF
response.write mySQL("x_ID") & " "
mySQL.MoveNext
LOOP
mySQL.MoveFirst
DO UNTIL mySQL.EOF
response.write mySQL("x_ID") & " "
mySQL.MoveNext
LOOP